在不使用点运算符的情况下访问类属性
本文关键字:情况下 访问 属性 运算符 点运算 | 更新日期: 2023-09-27 18:26:02
当使用双精度类型调用时,我需要重载一些运算符。为了实现这一点,我创建了一个从 Double 继承的类 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
属性。这可能吗?我该怎么做?
您可以定义一个隐式转换运算符,如下所示:
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);
}
}