当我尝试将返回类型转换为对象或我自己定义的一种自定义类型时,为什么隐式运算符会出现问题?
当我尝试转换并返回像这样的简单类型时,我没有问题int
,就像这样
public static implicit operator int(MyClass a)
{
return 123;
}
但是,当我尝试将类型转换为对象或自定义类型时,会出现错误。例如,如果我有这样的事情,我会得到一个编译时错误,说“用户定义的转换为 System.Object ”:
public static implicit operator object(MyClass a)
{
return new {};
}
如果我有这个,我会得到同样的错误:
public static implicit operator CustomTestObject(MyClass a)
{
return new CustomTestObject();
}
使用隐式运算符时,如何将其转换为我自己的自定义类型以返回?