我学会了为我的类使用隐式运算符。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的实现。 –