相关问题:不使用点运算符访问类属性 https://stackoverflow.com/questions/9494070/accessing-a-class-property-without-using-dot-operator/
我创建了一个名为MyDouble
看起来像这样
class MyDouble
{
double value;
//overloaded operators and methods
}
我能够在 MyDouble 上执行各种操作。例子:
MyDouble a = 5.0;
a += 3.0;
...etc
但是,这仍然会引发错误
MyDouble a = 5.0;
long b = (Int64)a; //error
long b = (int64)a.value; //works
我如何定义它以便像这样的操作(Int64)a
自动转换为(Int64)a.value
?我不希望用户永远不必担心该value
财产。
为了使此转换起作用,您需要一个显式转换 http://msdn.microsoft.com/en-us/library/xhbhezf4%28v=vs.71%29.aspx到 Int64。
这看起来像:
class MyDouble
{
double value;
public static explicit operator Int64(MyDouble value)
{
return (Int64)value.value;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)