【发布时间】:2008-11-26 11:20:06
【问题描述】:
我想知道重写转换运算符是否仅适用于数字类型? 如果不是在什么情况下,隐式或显式转换运算符适用于其他值类型或引用类型。一个例子会很棒。 谢谢
【问题讨论】:
我想知道重写转换运算符是否仅适用于数字类型? 如果不是在什么情况下,隐式或显式转换运算符适用于其他值类型或引用类型。一个例子会很棒。 谢谢
【问题讨论】:
不 - 你可以使用任何类型。
例如,XAttribute 定义了一系列转换,使各种转换变得简单:
XAttribute attrib = new XAttribute("Foo", "12345");
int i = (int)attrib;
string s = (string)attrib;
另一个有用的例子是 Jon 的 NonNullable<T> - 它旨在巧妙地与类一起工作,同时禁止空值。转换运算符使其易于使用。
【讨论】: