IT虾米网

c#之C#隐式转换面试题

exmyth 2023年10月27日 编程语言 107 0

我得到了一份声明样本:

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); 
    } 
} 

就我个人而言,大部分时间我都不是隐式转换的忠实拥护者。有时它们很有用,但在将它们放入您的代码之前请仔细考虑。当您阅读代码时,它们可能会让您感到困惑。

另一方面,如果使用得当,它们会非常方便——我特别想到从 stringXNameXNamespace< 的转换 在 LINQ to XML 中。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!