2016-04-10 174 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 };