在不使用点运算符的情况下访问Class属性

使用Double类型调用时,我需要重载一些运算符。 为了实现这一点,我正在创建一个inheritance自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属性。 这可能吗? 我该怎么办呢?

您可以定义隐式转换运算符,如下所示:

 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); } }