我學會了爲我的類使用隱式運算符。int的隱式運算符?
現在我想要做這樣的事情:
public static implicit operator string(int val)
{
return "The value is: " + val.ToString(); // just an nonsense example
}
然而這是錯誤的。編譯器說:
用戶定義的轉換必須轉換或從封閉類型
我怎樣才能解決這個?
我的目標是能夠像這樣運行代碼:
int x = 50;
textbox1.Text = x; // without using .ToString() or casting
爲什麼這是錯的?在我看來,這是完全正確的! –
@RomanoZumbé我更新了我的問題。當我嘗試這樣做時,編譯器會說「用戶定義的轉換必須轉換爲包圍類型或從包含類型轉換」 – Kamil
您無法解決此問題,因爲您必須*在轉換的類中實現隱式運算符作爲靜態方法 - 當然,你不能改變System.Int32的實現。 –