c#中的类没有类型转换操作符?

时间:2010-01-28 16:59:09

标签: c# typecast-operator

类型转换操作符在c ++中很酷,在c#中没有这样的东西吗?

c ++代码:

class A
{
int dat;

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

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

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:1)

由于隐式和显式转换运算符都是一元运算符,因此可以像使用其他一元运算符一样使用语法覆盖它们。以下是隐式转换运算符的一般语法:

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

答案 2 :(得分:0)

您正在寻找什么具体功能?对于类的类型转换,您可以通过转换为type((BaseClass)o)语法来降级对基类的引用。您可以通过Convert.ToInt32(“223”)将引用转换为其他类型;对于实现IConvertible的类型。具体你在寻找什么?

HTH。