Birincil oluşturucular artık VS2015'te derlenmiyor


98

Tam bu güne kadar, aşağıdaki gibi birincil oluşturuculardan yararlanabilirim:

public class Test(string text)
{
    private string mText = text;
}

Bunu yapabilmek için önceki Visual Studio CTP'de bunu csproj dosyasına eklemem gerekiyordu:

<LangVersion>Experimental</LangVersion>

Her neyse, bu artık Visual Studio 2015 Önizlemesinde (olsun veya olmasın LangVersion) çalışmaz . Neler olabileceği hakkında herhangi bir fikri olan var mı?



15
Bu özelliğin anlamsız olduğunu düşünen tek kişi ben miyim? Asla bunun için gerçek faydayı bulamadım.
TyCobb

2
Biraz tuhaf geldi ama arkasındaki felsefeyi seviyorum!
Matko

14
Bu utanç verici. Ancak F # 'a geçtiğinizde birincil kurucuları özgürce kullanabilirsiniz. F #, csharpers, yeni dil özellikleri vardır zaten taşı;)
scrwtp

3
@TyCobb, birincil oluşturucular bağımlılık enjeksiyonu ile kesinlikle gereklidir: her bağımlılığın adını (ve türünü) dört kez tekrarlamadan yapıcı enjeksiyonunu (özellik enjeksiyonunun aksine) kullanabilirsiniz.
Fyodor Soikin

Yanıtlar:


143

Neler olabileceği hakkında herhangi bir fikri olan var mı?

Evet - birincil kurucular C # 6 planlarından çıkarıldılar. Daha sonraki bir sürümde bazı şekillerde görünebilirler, ancak artık C # 6'da değiller.

Daha fazla ayrıntı için ekibin "Dil özelliği grubundaki değişiklikler" gönderisine bakın.


Bu gerçekten üzücü! Oldukça faydalı görünüyorlardı.
Her Lundberg

@PerLundberg: C # 7 de değiller. C # tasarım ekibinin C # 8'deki kayıt türlerini tekrar ziyaret edeceğinden şüpheleniyorum, ancak bu kesinlikle orada olacakları anlamına gelmiyor.
Jon Skeet

En iyisini umalım. :) Onlardan bazı C # gönderilerinde evet olarak bahsedildiğini gördüm ve "basit sınıf" problemini denemek ve çözmek için başka ilginç bir yol gibi görünüyordu.
Per Lundberg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.