【问题标题】:Anonymous types (classes features)匿名类型(类特征)
【发布时间】:2016-07-31 15:43:51
【问题描述】:

我有一个很大的困难。我有问题要回答:MyClass 应该具备哪些功能才能正确?

var myVariable = new MyClass { 25 };

我从星期五开始就一直在寻找答案,但我还没有结果。你有什么想法吗?

【问题讨论】:

    标签: c# .net variables var


    【解决方案1】:

    为了符合该语法的条件,该类需要做两件事:

    • 它需要实现IEnumerable(或其他暗示IEnumerable的接口——它也可以从实现IEnumerable的基类继承)
    • 需要实现一个能够接收int值的Add(...)方法

    以下任何一种类声明都可以:

    public class MyClass1 : IEnumerable
    {
        public void Add(int i) { }
        public IEnumerator GetEnumerator() => null;
    }
    
    public class MyClass2 : IEnumerable
    {
        public void Add(double i) { }
        public IEnumerator GetEnumerator() => null;
    }
    
    public class MyClass3 : IEnumerable
    {
        public void Add(object i) { }
        public IEnumerator GetEnumerator() => null;
    }
    

    编译器可以自动将int 值转换为更多类型,以上只是3 个不同的示例。

    【讨论】:

      【解决方案2】:

      它应该有一个Add(int) 方法。这是一个集合初始化器。 List 是这样做的。

      var myVariable = new List<int> { 25 };
      

      【讨论】:

        猜你喜欢
        • 2010-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多