2010-01-28 2 views
0

Оператор типа типа классный в C++, нет такой вещи в C#?нет оператора типа для класса в C#?

C++ код:

class A 
{ 
int dat; 

public: 
A(int num = 0) : dat(num) {} 

operator int() {return dat;} // cast to int 
}; 
+0

В следующий раз, пожалуйста, постарайтесь быть ясными и конкретными, когда задаете свой вопрос в первый раз. Это поможет вам избежать близких голосов. –

+0

@jeffamaphone, вы. – Benny

ответ

4

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

Что особенность вы ищете? Для преобразования типов классов вы можете понизить ссылки на базовый класс путем преобразования в синтаксис типа ((BaseClass) o). Вы можете конвертировать ссылки на другие типы через Convert.ToInt32 («223»); для типов, реализующих IConvertible. Что конкретно вы ищете?

HTH.

1

Поскольку неявные и явные операторы приведения являются унарными операторами, их можно переопределить с помощью синтаксиса, как и другие унарные операторы. Ниже приведен общий синтаксис оператора неявного преобразования:

public static implicit operator result-type(op-type operand) 

 Смежные вопросы

  • Нет связанных вопросов^_^