SORU
11 NİSAN 2009, CUMARTESİ


'bir nesne başlatıcı arasındaki fark ne ve bir kurucu?

İkisi arasındaki farklar nelerdir ve kullanırsınız "nesne başlatıcı" bir "yapıcı" ya da tam tersi? Eğer sorun buysa tabii. C ile çalışıyorum#, Nesne başlatıcı yöntemi de, özel C# veya .NET?

CEVAP
11 NİSAN 2009, CUMARTESİ


Nesne Başlatıcılar bir şey C için eklenen bir nesneyi kullanırken nesnelerin inşaat basitleştirmek için# 3 idi.

Kurucular, 0 veya daha fazla parametre verilen çalıştırın ve bir nesne oluşturmak başlatmak için kullanılıröncearama yöntemi için oluşturulan nesneyi ele alır. Örneğin:

MyObject myObjectInstance = new MyObject(param1, param2);

Bu durumda, MyObject kurucu değerleri param1 param2 ile çalışır. Bu hem bellek MyObject yeni oluşturmak için kullanılır. Oluşturulan nesneyi Kur bu parametreleri kullanarak) geri alır, ve 8 ** ayarlayın.

Genel olarak iyi bir uygulama oluşturucu tamamen imkansız geçersiz bir durumda bir nesne oluşturmak için bir nesne kurulum için gerekli parametreleri gerektirir.

Ancak, sık sık "" ayarlanmış olabilir, ama gerekli olmayan ekstra özellikleri vardır Bu aşırı kurucular ile ele olabilir, ama ille de şart çoğunda yararlı olmayan kurucular çok fazla olması yol açar.

Bu nesne başlatıcılar yol açar - Bir Nesne Başlatıcı nesne özellikleri veya alanları ayarlamanızı sağlarsonrainşa oldu amaöncebaşka bir şey kullanabilirsiniz. Örneğin:

MyObject myObjectInstance = new MyObject(param1, param2)
{
    MyProperty = someUsefulValue
};

Bu eğer bunu yaparsanız aynı şekilde hareket eder:

MyObject myObjectInstance = new MyObject(param1, param2);
myObjectInstance.MyProperty = someUsefulValue;

Ancak, içindeçok iş parçacıklıortamlarda kararlılık nesne başlatıcı olabilir yararlı beri önler nesneden olmanın bir değil, tam olarak başlatılmış devlet (bakınız this answer daha fazla bilgi için) - null veya başlatılmamış gibi tasarlanmıştır.

Ayrıca, nesne başlatıcılar var daha basit okumak (özellikle ayarlanmış birden fazla değer), bu yüzden veriyorlar size aynı faydayı çok aşırı oluşturucu gerek kalmadan pek çok aşırı komplike API için o sınıf.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • celebrateubuntu

    celebrateubu

    23 Mayıs 2011
  • CorridorDigital

    CorridorDigi

    17 Mayıs 2010