类型转换操作符在c ++中很酷,在c#中没有这样的东西吗?
c ++代码:
class A
{
int dat;
public:
A(int num = 0 ) : dat(num) {}
operator int() {return dat;} // cast to int
};
答案 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。