使用重命名的类型在C#中重命名类型 使用IdType=System.Guid; 使用RowType=System.Tuple
工作。 当使用重命名的类型在C#中重命名类型 使用IdType=System.Guid; 使用RowType=System.Tuple,c#,.net,C#,.net,工作。 当 使用IdType=System.Guid; 使用RowType=System.Tuple 不编译。 第一行声明的IdType似乎不能与进一步的using一起使用 有办法解决这个问题吗?这样可以: using IdType = System.Guid; using RowType = System.Tuple<IdType, object> 使用IdType=System.Guid; 名称空间x { 使用RowType=System.Tuple; } 原因是类型别名仅
使用IdType=System.Guid;
使用RowType=System.Tuple
不编译。第一行声明的
IdType
似乎不能与进一步的using
一起使用
有办法解决这个问题吗?这样可以:
using IdType = System.Guid;
using RowType = System.Tuple<IdType, object>
使用IdType=System.Guid;
名称空间x
{
使用RowType=System.Tuple;
}
原因是类型别名仅适用于包含它们的命名空间中的声明。使用IdType=System.Guid;
using IdType = System.Guid;
namespace x
{
using RowType = System.Tuple<IdType, object>;
}
使用RowType=System.Tuple;
命名空间Windows窗体应用程序1
{
公开无效测试()
{
var guideq=typeof(IdType).Equals(typeof(System.Guid));
var typeeq=typeof(RowType).Equals(typeof(System.Tuple));
System.Tuple obj=新的行类型(IdType.NewGuid(),“”);
}
IdType和System.Guid
是同一类型
System.Tuple
和RowType
属于同一类型。在本例中
它只是一个别名,所以我们需要使用任何地方
在代码中,我检查这两种类型是否相等,并且是否正确;因为它是同一类型的别名
此类型重命名(或)类型别名有助于编码,
理解并避免混淆。尤其是当类型变得复杂时。为什么还要这样做?这似乎是混淆代码的好方法!@DavidG沿着这条路走下去,用于ID的类型可能会改变,我想。@DavidG我的代码会(不会)看起来像
System.Tuple
。我试图摆脱它,我的例子被简化了。大写字母应该少用——一般来说,在句子开头和专有名词中。不是每个单词(或其他每个单词)都要用大写字母
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(), "");
}