SORU
15 NİSAN 2009, ÇARŞAMBA


Genel başlatılıyor.C listesinde#

C# ben bir liste aşağıdaki sözdizimini kullanarak başlatılamıyor.

List<int> intList= new List<int>() { 1, 2, 3 };

{} sözdizimi nasıl çalıştığını, ve eğer bir isim varsa bilmek isterim. * *10, diyebilirsiniz bir alan bir kurucusu yoktur.

List<int> intList= new List<int>(new int[]{ 1, 2, 3 });

Daha fazla gibi görünüyor "standart". Liste için varsayılan kurucuyu ben ölüme gidişini ben sadece bakın

this._items = Array.Empty;

Bunu yapmak mümkün olmak istiyorum.

CustomClass abc = new CustomClass() {1, 2, 3};

1, 2, 3 listeyi kullanabilir. Nasıl oluyor bu iş?

Güncelleme

Jon Skeet yanıtladı

Bu parametresiz arıyor yapıcı, ve sonra Ekle arama:

> List<int> tmp = new List<int>();
> tmp.Add(1); tmp.Add(2); tmp.Add(3);
> List<int> intList = tmp;

Ne demek olduğunu anladım. Nasıl olduğunu bilmek istiyorum. Nasıl bir sözdizimi yöntemi Ekleyin aramayı biliyor mu?

Güncelleme

Jon Skeet bir cevap kabul etmeyi biliyorum. Ama, dizeleri ve değer vermez ile örnek müthiş. Ayrıca çok yararlı MSDN sayfası:

CEVAP
15 NİSAN 2009, ÇARŞAMBA


Bu bir denirkoleksiyon başlatıcı. Parametresiz kurucu arıyor, ve sonra Ekle arıyor:

List<int> tmp = new List<int>();
tmp.Add(1);
tmp.Add(2);
tmp.Add(3);
List<int> intList = tmp;

Bu tür gereksinimleri vardır:

  • IEnumerable bunu uygular
  • Sağladığınız için uygun Add aşırı yükleme var. Birden çok parametre ile hangi durumda derleyici Add bir yöntem arar parantez içinde birden çok bağımsız değişken, tedarik edebilirsiniz.

Örneğin:

public class DummyCollection : IEnumerable
{
    IEnumerator IEnumerable.GetEnumerator()
    {
        throw new InvalidOperationException("Not a real collection!");
    }

    public void Add(string x)
    {
        Console.WriteLine("Called Add(string)");
    }

    public void Add(int x, int y)
    {
        Console.WriteLine("Called Add(int, int)");
    }
}

Sonra da kullanabilirsiniz:

DummyCollection foo = new DummyCollection
{
    "Hi",
    "There",
    { 1, 2 }
};

(Tabii ki, normalde IEnumerable doğru şekilde uygulamak için toplama...) isterdim

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • julioissk84life

    julioissk84l

    18 ŞUBAT 2008
  • kalabrandmusic

    kalabrandmus

    25 Kasım 2009
  • pendrop gaming

    pendrop gami

    4 ŞUBAT 2013