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

  • incognitotraveler

    incognitotra

    27 Mayıs 2010
  • Mega64

    Mega64

    24 ŞUBAT 2006
  • mliskIT

    mliskIT

    29 Mart 2012