是否可以为现有类型创建别名并在整个项目中使用该别名?
例如,创建
CustomerID = System.UInt32
并使用CustomerID作为数据类型?
版本:.NET Framework 4.0
(使用“using”关键字,我们可以创建一个别名,但它没有用,因为它不能跨文件工作。)
还有其他想法吗?
答案 0 :(得分:4)
我相信这个问题的正确答案是:
不,那是(不幸的是?)不可能。 :(
编辑1:然而,你可以(种类)通过制作你自己的struct
来模拟这个,并提供与你的类型的隐式转换想。它并不完全是神奇的,但它可能会起作用,具体取决于具体情况。
编辑2:我以前从未使用过此功能,但type forwarding 可能会有所帮助。但是它只转发到另一个整个组件,所以它可能不适用于简单的情况。
答案 1 :(得分:0)
这似乎不可能。但是,您为什么要这样做呢?
如果您的理由是可读性,请考虑以下事项:
您已经可以使用自己的标识符来表明它是一个customerID
。尝试将UInt32
重命名为CustomerID
时,您实际上正在做的是让它看起来像一个新类型。只有当类型需要其他行为或值时,将其视为“新”类型才有用。如果你是用C ++开发的,那么你可以理解在C#中不允许这样做会导致的约定。您知道UInt32
会发生什么。
如果您的理由为变化做好准备:
E.g。假设在一段时间后你决定你也想支持负面ID。这应该通过将这种可能的预期行为封装在新类型中来解决。所以不需要重命名。