Преобразование моего класса в Int64, Double и т. Д.

Связанный вопрос: Доступ к свойству Class без использования оператора точки

Я создал класс с именем 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 .

6
задан Community 23 May 2017 в 10:34
поделиться