我尝试转换为具有浮动隐式转换器的类的浮动匿名对象。我不确定我是否正确解释。下面是例子:匿名对象的隐式类型转换
我有以下类:
public class MyFloat
{
public float Value { get; set; }
public MyFloat(float val)
{
Value = val;
}
public static implicit operator MyFloat(float v)
{
return new MyFloat(v);
}
public static implicit operator float(MyFloat d)
{
return d.Value;
}
然后,如果我尝试:
object f1 = new MyFloat(5.0f);
float f2 = f1; // Unhandled Exception: System.InvalidCastException: Specified cast is not valid.
float f3 = (MyFloat)f1;
我得到InvalidCastException的。我假设f1被视为对象,并没有检查它是否是真实类型(MyFloat)对于浮动转换器是隐式的。 有什么办法可以解决这个问题吗?
在此先感谢
第二行是否编译?它看起来不应该是...... –
还请注意,“匿名对象”不是一个有意义的术语。我不知道你的意思...... –
@MrFox但是,然后,浮点运算符的定义是没有意义的。 –