typecast運算符在C++中很酷,在c#中沒有這樣的事情?沒有在C#中的類的類型轉換運算符?
C++代碼:
class A
{
int dat;
public:
A(int num = 0) : dat(num) {}
operator int() {return dat;} // cast to int
};
typecast運算符在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);
}
你在找什麼特殊功能?對於類的類型轉換,可以通過轉換爲type((BaseClass)o)語法來降級對基類的引用。您可以通過Convert.ToInt32(「223」);將引用轉換爲其他類型。對於實現IConvertible的類型。你在找什麼具體的東西?
HTH。
由於隱式和顯式轉換運算符都是一元運算符,因此可以像使用其他一元運算符一樣使用語法覆蓋它們。下面是隱式轉換運算符的一般語法:
public static implicit operator result-type(op-type operand)
下一次,請在第一次提問時嘗試清楚具體。它會幫助你避免接近的選票。 – 2010-01-28 17:11:19
@jeffamaphone,有你。 – Benny 2010-01-28 17:14:03