Оператор типа типа классный в C++, нет такой вещи в C#?нет оператора типа для класса в C#?
C++ код:
class A
{
int dat;
public:
A(int num = 0) : dat(num) {}
operator int() {return dat;} // cast to int
};
Оператор типа типа классный в C++, нет такой вещи в C#?нет оператора типа для класса в C#?
C++ код:
class A
{
int dat;
public:
A(int num = 0) : dat(num) {}
operator int() {return dat;} // cast to int
};
C# есть! вот несколько примеров из MSDN: Явные:
public static explicit operator Celsius(Farenheit f)
{
return new Celsius((5.0f/9.0f)*(f.degrees-32));
}
Неявные:
// User-defined conversion from double to Digit
public static implicit operator Digit(double d)
{
return new Digit(d);
}
Что особенность вы ищете? Для преобразования типов классов вы можете понизить ссылки на базовый класс путем преобразования в синтаксис типа ((BaseClass) o). Вы можете конвертировать ссылки на другие типы через Convert.ToInt32 («223»); для типов, реализующих IConvertible. Что конкретно вы ищете?
HTH.
Поскольку неявные и явные операторы приведения являются унарными операторами, их можно переопределить с помощью синтаксиса, как и другие унарные операторы. Ниже приведен общий синтаксис оператора неявного преобразования:
public static implicit operator result-type(op-type operand)
В следующий раз, пожалуйста, постарайтесь быть ясными и конкретными, когда задаете свой вопрос в первый раз. Это поможет вам избежать близких голосов. –
@jeffamaphone, вы. – Benny