2010-01-28 37 views
0

typecast運算符在C++中很酷,在c#中沒有這樣的事情?沒有在C#中的類的類型轉換運算符?

C++代碼:

class A 
{ 
int dat; 

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

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

下一次,請在第一次提問時嘗試清楚具體。它會幫助你避免接近的選票。 – 2010-01-28 17:11:19

+0

@jeffamaphone,有你。 – Benny 2010-01-28 17:14:03

回答

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

你在找什麼特殊功能?對於類的類型轉換,可以通過轉換爲type((BaseClass)o)語法來降級對基類的引用。您可以通過Convert.ToInt32(「223」);將引用轉換爲其他類型。對於實現IConvertible的類型。你在找什麼具體的東西?

HTH。

1

由於隱式和顯式轉換運算符都是一元運算符,因此可以像使用其他一元運算符一樣使用語法覆蓋它們。下面是隱式轉換運算符的一般語法:

public static implicit operator result-type(op-type operand) 
相關問題