xbo*_*nez 2 c# oop operator-overloading
使用Double类型调用时,我需要重载一些运算符.为了实现这一点,我正在创建一个继承自Double的类MyDouble.MyDouble看起来有点像这样
class MyDouble : Double
{
Double value;
// operator overloads go here
}
Run Code Online (Sandbox Code Playgroud)
我想value从用户中抽象出属性,以便它可以像Double一样使用.基本上我希望用户能够这样做:
MyDouble a = 5; //a.value gets assigned 5
Console.WriteLine(a); //prints a.value
Run Code Online (Sandbox Code Playgroud)
我不希望用户必须专门针对该value属性.这可能吗?我该怎么办呢?
您可以定义隐式转换运算符,如下所示:
class MyDouble {
public Value {get; private set;}
public Double(double value) {
Value = value;
}
// Other declarations go here...
public static implicit operator double(MyDouble md) {
return md.Value;
}
public static implicit operator MyDouble(double d) {
return new MyDouble(d);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1401 次 |
| 最近记录: |