次のようなクラスを考えてみましょう:
public class MyString
{
private string _string;
public string String
{
get { return _string; }
set { _string = value; }
}
public MyString(string s)
{
_string = s;
}
public static implicit operator string(MyString str)
{
return str.String;
}
public static implicit operator MyString(string str)
{
return new MyString(str);
}
}
次のコードを機能させるにはどうすればよいですか?
MyString a = "test";
object b = a;
var c = (string)b;
今、私はこの例外を受け取ります:
InvalidCastException: タイプ 'MyString' のオブジェクトをタイプ 'System.String' にキャストできません。