using IdType = System.Guid;
using RowType = System.Tuple<System.Guid, object>
的工作原理。 而
using IdType = System.Guid;
using RowType = System.Tuple<IdType, object>
不编译。
第一行声明的IdType
无法与using
进一步使用。
有解决方法吗?
答案 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并且它是真的;因为它是同一类型的别名。
此类型重命名(或)类型别名有助于编码, 理解并避免混淆。特别是当类型变得复杂时。