我嘗試轉換爲具有浮動隱式轉換器的類的浮動匿名對象。我不確定我是否正確解釋。下面是例子:匿名對象的隱式類型轉換
我有以下類:
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但是,然後,浮點運算符的定義是沒有意義的。 –