匿名类型(类功能)

syz*_*on9 5 .net c# variables var

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

var myVariable = new MyClass { 25 };
Run Code Online (Sandbox Code Playgroud)

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

ang*_*son 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;
}
Run Code Online (Sandbox Code Playgroud)

还有更多类型,编译器可以自动转换int值,上面只是3个不同的例子.