我得到了一份声明样本:
MyClass myclass = 3;
如何使这个声明有效?我需要在 MyClass
中包含哪些代码以支持从 int
进行隐式转换?
请您参考如下方法:
你需要一个 implicit conversion operator :
public class MyClass
{
private readonly int value;
public MyClass(int value)
{
this.value = value;
}
public static implicit operator MyClass(int value)
{
return new MyClass(value);
}
}
就我个人而言,大部分时间我都不是隐式转换的忠实拥护者。有时它们很有用,但在将它们放入您的代码之前请仔细考虑。当您阅读代码时,它们可能会让您感到困惑。
另一方面,如果使用得当,它们会非常方便——我特别想到从 string
到 XName
和 XNamespace< 的转换
在 LINQ to XML 中。