SORU
31 Ocak 2015, CUMARTESİ


C yeni bir nesne oluştururken { } öyle ( )#?

Ben sadece () yerine {} kullanarak bir nesne oluştururken aynı sonuçları verdiğini fark ettim.

class Customer
{
    public string name;
    public string ID {get; set;}
}

static void Main()
{  
    Customer c1= new Customer{}; //Is this a constructor? 
    Customer c2= new Customer();

    //what is the concept behind the ability to assign values for properties 
    //and fields inside the {} and is not allowable to do it inside () 
    //without defining a constructor:

    Customer c3= new Customer{name= "John", ID="ABC"};
}

{} C yeni bir nesne oluştururken () gibi davranır#?

CEVAP
31 Ocak 2015, CUMARTESİ


Doğrudan C yeni bir nesne oluşturmak için üç yol vardır#:

  • Basit bir oluşturucu bağımsız değişken listesi ile arama:

    new Foo()       // Empty argument list
    new Foo(10, 20) // Passing arguments
    
  • Bir başlatıcı değişken bir liste oluşturur

    new Foo() { Name = "x" }       // Empty argument list
    new Foo(10, 20) { Name = "x" } // Two arguments
    
  • Hiçbir bağımsız değişken listesi ile bir nesne başlatıcı

    new Foo { Name = "x" }
    

En son şeklidirtam olarak eşdeğerboş bir bağımsız değişken listesi. belirterek Genellikle parametresiz bir kurucu, ama arayacakolabilirtüm parametreleri varsayılan değerlerine sahip bir kurucusunu çağırmak.

Şimdi her iki nesne başlatıcı örneklerde verdim, Name bir özellik ayarladım ve diğer özellikleri/alanları belirlemek, ya da bile ayarlayabilirsinizhayırözellikleri ve alanları. Yani bu üç eşdeğer, etkili bir kurucu argümanları geçen ve özelliklerini ayarlamak/alanları: belirtme

new Foo()
new Foo() {}
new Foo {}

Bunlardan ilki en geleneksel.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • IGN

    IGN

    19 EYLÜL 2006
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • TheDroidDemos

    TheDroidDemo

    15 ŞUBAT 2011