Возможный дубликат:
Создать общий метод, ограничивающий T до Enum
Есть ли причина, по которой мы не можем сделать это на С#? И, если возможно, как я могу сделать что-то подобное!
Что я хочу:
public class<T> ATag where T : enum {
[Some code ..]
}
public class<T> classBase where T : enum {
public IDictionary<T, string> tags { get; set; }
}
Итак, когда наступит время его называть, я получаю только одно из моих значений перечисления.
public class AClassUsingTag : classBase<PossibleTags> {
public void AMethod(){
this.tags.Add(PossibleTags.Tag1, "Hello World!");
this.tags.Add(PossibleTags.Tag2, "Hello Android!");
}
}
public enum PossibleTags {
Tag1, Tag2, Tag3
}
Сообщение об ошибке: "Constraint cannot be special class 'System.Enum'"
Спасибо!