考虑这样一个类:
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: Unable to cast object of type 'MyString' to type 'System.String'.
最佳答案
自定义隐式/显式运算符仅在键入的 值之间起作用 - 而不是对象
。这样的转换总是基本的类型检查或拆箱。隐式转换为:
string s = a;
关于c# - 字符串转换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11738519/