我尝试转换为具有浮点隐式转换器的浮点匿名类对象。我不确定我是否解释正确。这是示例:
我有以下课程:
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)是否具有隐式浮点转换器。有没有办法解决这个问题?
提前致谢