使用重命名的类型在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(), "");
}