2016-04-10 148 views
5

我有一个很大的困难。我有这个问题要回答:MyClass应该具备哪些功能才能正确使用?匿名类型(类功能)

var myVariable = new MyClass { 25 }; 

我试图从周五开始找到答案,但是我还没有结果。你有什么想法吗?

回答

5

有两件事情的类,以便有资格为语法需要:

  • 它需要实现IEnumerable(或暗示IEnumerable一些其他的接口 - 这也可以从基继承类,它实现IEnumerable
  • 它需要实现能够接收int
012的 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 };