2011-06-19 18 views
5

Enum değerlerimde ek bilgi saklamak ve bu nedenle Öznitelikler ile birlikte gelmek istiyorum. Tek bir malın taşınmasını istediğimden beri 1.n strings Öznitelik yapıcısının bir değişken parametresini kabul etmesini sağlamaya çalıştım. Şunun gibi:Öznitelikten türetilen sınıf değişken değişkenli kurucu çalışmıyor

[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false, Inherited = false)] 
public class FileTypeAttribute : Attribute 
{ 
    public readonly string[] Extensions; 

    FileTypeAttribute(params string[] extensions) 
    { 
     this.Extensions = extensions; 
    } 
} 

Benim sorunum ben artık özelliğinin kullanımını yapmaya çalışıyorum benim derleyici şikayet olduğunu ve ben gerçekten anlamıyorum aşağıdaki hata iletisiyle bırakır:

public enum EFileType 
{ 
    [FileTypeAttribute("txt")] 
    TEXTFILE, 
    [FileTypeAttribute("jpg", "png")] 
    PICTURE 
} 

verir ben:

'FileTypeAttribute' does not contain a constructor that takes '1' arguments ve 'FileTypeAttribute' does not contain a constructor that takes '2' arguments

Böyle lütfen neden kimse bana söyleyebilir misiniz ? Hatırladığım kadarıyla, enumları biraz "java'ish" yapmak için gerçekten bir olasılık olmadığını hatırlıyorum. Ama eğer herhangi bir alternatifi kaçırırsam, bunu duyduğuma sevinirim.

cevap

9

yapıcı örtülü private olduğunu - Açıkça bunu public işaretlemek:

public FileTypeAttribute(params string[] extensions) 
{ 
    this.Extensions = extensions; 
} 
+1

Jeeez .. onlar ahşap ve ağaçlar hakkında ne diyorsunuz. Çok teşekkürler, saat harcadım :) –

İlgili konular