C #, nesne başlatıldığında kıvırcık parantez içindeki özellik parametrelerini belirtmenizi sağlar. Bu, hangi öğelerin başlatılacağını ve hangilerinin varsayılan olarak bırakılacağını seçmenize ve seçmenize olanak tanır.
Öte yandan bir kurucu, tek bir kod bloğunu sabit bir parametre kümesiyle çalıştırır. Aynı efekti elde etmek için, başlatmak isteyebileceğiniz çeşitli özellik kombinasyonlarına sahip birden fazla kurucu oluşturmanız gerekir, bu da sıkıcı olabilir.
var x = new Person {FirstName="Homer",LastName="Simpson",Age=47};
tam olarak buna eşittir:
var x = new Person();
x.FirstName="Homer";
x.LastName="Simpson";
x.Age=47;
Bunun dışında gözler üzerinde daha kısa ve tartışmasız daha kolay.
Ayrıca, sorunuzda gösterdiğiniz gibi, geçici değişkenler oluşturmanız ve bunları listeye eklemeden önce burada yaptığım gibi başlatmanız gerekiyorsa çok sıkıcı olacak yapılara izin verir. (Bunu yapmak için kullandığınız şey budur.) Tümü, istediğiniz veya bulunamayan istediğiniz parametre listesini alan, açıkça tanımlanmış bir kurucuya ihtiyaç duymadan.
Ayrıca, bir kurucu özellikleri özel bir ayarlayıcı ile başlatabilirken, bu tekniğin (verilen örnekten de anlaşılacağı gibi) yalnızca mülk için bir ortak ayarlayıcı varsa çalışacağını unutmayın. Ayrıca kısaltılmış örneğimin örtük olarak varsayılan (parametresiz) yapıcı olarak adlandırıldığını ve bu nedenle mevcut olması gerektiğini unutmayın.