2016-04-10 24 views
5

Tek bir zorluğum var. Cevap vermem gereken soru var: MyClass'ın doğru olması için hangi özelliklere sahip olması gerekir?Anonim türleri (sınıf özellikleri)

var myVariable = new MyClass { 25 }; 

Cumadan bu yana cevabı bulmaya çalıştım ancak henüz sonuç yok. Bunun hakkında bir fikrin var mı?

cevap

5

sınıf o sözdizimi alabilmek amacıyla ihtiyaç iki şey vardır: O IEnumerable uygulaması gerekmektedir

  • (veya IEnumerable ima başka bir arayüz - aynı zamanda bir tabanından miras alacak IEnumerable)
  • bir int değeri
012 alma yeteneğine sahip bir Add(...) yöntemi uygulamak için ihtiyaç
  • uygulayan sınıf Aşağıdaki sınıf bildirimleri

    herhangi biri yapacağını:

    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; 
    } 
    

    daha tipleri de derleyici otomatik int değer dağıtmak anlamına üzere, yukarıda sadece 3 farklı örnekleridir vardır.

  • 2

    Add(int) yöntemine sahip olmalıdır. Bu bir koleksiyon başlatıcısıdır. List bunu beğendi.

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