我有一個字符串類的自定義實現。我在字符串和類之間添加了自定義轉換運算符,並且投射正常工作。但是,如果我第一次將自定義對象轉換爲System.Object,然後將其轉換爲字符串:「無法將類型'MyString'轉換爲鍵入'System.String'」。這是爲什麼?我怎樣才能使它...C#與轉換運算符鑄造
class MyString
{
public string S {get; set;}
public MyString(string s)
{
this.S = s;
}
public static implicit operator string(MyString s)
{
return s.S;
}
public static implicit operator MyString(string s)
{
return new MyString(s);
}
}
class Program
{
static void Main(string[] args)
{
MyString ms = new MyString("a");
string s = ms;
object o = ms;
string s1 = (string)o; // <-- this throws the exception!
}
}
這是一個明確的演員。如果定義了隱式轉換,則沒有明確的運算符 – 2012-02-05 17:28:00
顯式轉換工作。 – nogola 2012-02-05 17:31:07