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

标签 c#

我得到了一份声明样本:

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 中。

关于c# - C#隐式转换面试题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3457849/

相关文章:

C# 枚举解析和反射

c# - 调用绑定(bind)方法时无法识别的选择器

c# - 级联删除不与 EF 级联

c# - DAO 的类级错误处理程序

c# - 在同一台计算机上使用不同编程语言的不同程序之间发送数据的最佳方式是什么?

c# - 线程安全的扩展方法?

c# - IEnumerable 和 Array、IList 和 List 有什么区别?

c# - 标签自动换行

c# - SQL 位中 bool 值的等价物

c# - 如何在 asp c# 中定义结构中的列表?