【发布时间】:2012-02-29 05:35:10
【问题描述】:
当使用 Double 类型调用时,我需要重载一些运算符。为此,我创建了一个继承自 Double 的类 MyDouble。 MyDouble 看起来有点像这样
class MyDouble : Double
{
Double value;
// operator overloads go here
}
我想从用户那里抽象出 value 属性,以便它可以像 Double 一样使用。基本上我希望用户能够做到这一点:
MyDouble a = 5; //a.value gets assigned 5
Console.WriteLine(a); //prints a.value
我不希望用户必须专门针对 value 属性。这可能吗?我该怎么办?
【问题讨论】:
-
不是很清楚你的目的,重写ToString函数?
-
例如,假设我想重载
<运算符。因此,如果您使用二元运算符<,我的重载定义将决定返回结果。 -
MyDouble 继承的这个“Double”类是什么?它不能是 System.Double,因为那是一个值类型,而值类型是隐式密封的。
-
是的,我以为我可以从 System.Double 派生,但意识到这是不可能的。
标签: c# oop operator-overloading