使用重命名的类型

时间:2017-06-27 13:24:31

标签: c# .net

using IdType = System.Guid;
using RowType = System.Tuple<System.Guid, object>

的工作原理。 而

using IdType = System.Guid;
using RowType = System.Tuple<IdType, object>

不编译。
第一行声明的IdType无法与using进一步使用。

有解决方法吗?

2 个答案:

答案 0 :(得分:11)

这将有效:

using IdType = System.Guid;
namespace x
{
    using RowType = System.Tuple<IdType, object>;
}

原因是类型别名仅适用于包含它们的命名空间中的声明。

答案 1 :(得分:0)

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属于同一类型。在这  它只是作为别名工作的情况。所以我们需要在任何地方使用。

在代码中我正在检查这两种类型的equalality并且它是​​真的;因为它是同一类型的别名。

此类型重命名(或)类型别名有助于编码, 理解并避免混淆。特别是当类型变得复杂时。