2012-05-24 12 views

cevap

9

Yes it is very much legal and useful in C# to have trailing commas and no it is not a (benign) compiler bug.

Microsoft kolaylık bu özelliği eklendi - ilk veya son öğeyi özel duruma yoksa kod programlı oluşturuluyor eğer özellikle faydalıdır. Enum bildirimlerinde benzer sözdizimini, nesne başlatma, diziler, Liste vb. Öğelerde atama yapabilirsiniz.

Bu, sondaki virgülün, başlatıcınızda bulunan öğelerin bir listesini daha kolay olmasını sağlamak için sondaki bir virgül olmasını sağlar. zamanla uzunluk değiştirir. Örneğin, bu virgülünüz var olduğundan, sonuna yeni bir öğe eklemek yalnızca bir satırı düzenlemeyi ve yeni içeriği eklemek için virgül ve başka bir satır eklemek için bir satırı düzenlemeyi içermez.

Üstelik son seçenek

enum Cars 
{ 
    Honda, 
    Hyundai, 
    //Ford 
} 

dışında yorum eğer can sıkıcı olurdu .NET now support trailing comma in array like python does

Food for thought: If it had no use why would it be there in the first place?

+0

Kullandığım her dilde ortak olan bir özellik. Dizi oluşturma için de çalışır. – Dunes

+0

Şimdi bu şekilde koyduğunuzda, mükemmel bir anlam ifade ediyor. Bilgi için teşekkürler! Yorumunuzla ilgili olarak: 'Eğer hiçbir kullanımı olsaydı, ilk etapta neden olurdu? '' Derleyicinin hatalarını (C# 'da değil) görebileceğiz. Son derece nadir görülen bir durumdur, ben ** bunu elden çıkarmak için değil ** demiyorum. –

4

için Jon Skeet cevabı bakın dışarı yorum yaparsanız son öğe bir derleme hatası neyin neden :

var f = new Foo { 
    A = 1, 
// B = 4 
}; 

[Flags] 
enum Characteristics 
{ 
    None = 0, 
    Big = 1, 
// Strong = 2 
} 

var primes = new int[] { 
    2, 
    3, 
// 5 
}; 
0

Yes Yasal ve belirli bir amacı yoktur.

İlgili konular