using IdType = System.Guid;
using RowType = System.Tuple<System.Guid, object>
的作品。 而在C#中更名类型的类型
using IdType = System.Guid;
using RowType = System.Tuple<IdType, object>
不编译。
在第一行声明的IdType
不能与进一步using
似乎一起使用。
有没有办法解决这个问题?
using IdType = System.Guid;
using RowType = System.Tuple<System.Guid, object>
的作品。 而在C#中更名类型的类型
using IdType = System.Guid;
using RowType = System.Tuple<IdType, object>
不编译。
在第一行声明的IdType
不能与进一步using
似乎一起使用。
有没有办法解决这个问题?
这将工作:
using IdType = System.Guid;
namespace x
{
using RowType = System.Tuple<IdType, object>;
}
的原因是类型别名只在内部包含它们的命名空间声明中适用。
using IdType = System.Guid;
using RowType = System.Tuple<System.Guid, object>;
namespace WindowsFormsApplication1
{
public void Test()
{
var guideq = typeof(IdType).Equals(typeof(System.Guid));
var typeeq=typeof(RowType).Equals(typeof(System.Tuple<System.Guid,
object>));
System.Tuple<System.Guid, object> obj = new RowType(IdType.NewGuid(), "");
}
IdType and System.Guid
是相同类型。
System.Tuple<System.Guid, object>
和RowType
属于同一类型。在这个 的情况下,它只是作为一个别名工作。所以我们需要使用任何地方。
在代码中我检查这两种类型的等价性,它是真的;因为它是相同类型的别名。
此类型重命名(或)类型别名有助于编码, 可以理解并避免混淆。特别是当类型越来越复杂时。
大写字母应该谨慎使用 - 一般在句子的开头和专有名词。不是每个单词(或每隔一个单词) –
为什么你要这么做呢?似乎是一种混淆代码的好方法! – DavidG
@DavidG在这条路上,我认为用于ID的类型可能会改变。 –
@DavidG我的代码看起来不像System.Tuple,object []>'。我试图摆脱它,我的例子被简化了。 –
LosManos