«Класс , где T: Enum» не работает [дубликат]

Возможный дубликат:
Создать универсальный метод, ограничивающий T до Enum

Есть ли причина, по которой мы не можем сделать это на C #? И, если возможно, как я могу сделать что-то подобное!

Чего я хочу:

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
}

Сообщение об ошибке: «Ограничение не может быть специальным классом 'System.Enum'»

Спасибо!

15
задан Pramod More 31 May 2018 в 05:24
поделиться