匿名类型(类功能)

时间:2016-04-10 16:34:08

标签: c# .net variables var

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

var myVariable = new MyClass { 25 };

自从星期五以来我试图找到答案,但我还没有结果。你有什么想法吗?

1 个答案:

答案 0 :(得分:5)

为了符合这种语法,该类需要两件事:

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

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

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个不同的例子。