Мое соображение о том, почему кто-то предпочел бы делать это в статическом конструкторе, который вызывается ровно один раз, если данный тип является неправильным во всех вызовах, а не только один раз, и я бы предпочел бы получить исключения во всех частях кода, где неправильный тип используемый.Почему лучше проверить тип T в родовом классе в статическом конструкторе вместо нестатического?
Это пример того, что я имею в виду:
internal sealed class GenericTypeThatRequiresAnEnum<T> {
static GenericTypeThatRequiresAnEnum() {
if (!typeof(T).IsEnum) {
throw new ArgumentException("T must be an enumerated type");
}
}
}
Почему не только не-статический конструктор?
Можете ли вы поделиться код? Или, по крайней мере, пример? –
Зачем вам вообще нужно проверять тип? – Oded
Можете ли вы уточнить, какую проверку вы хотите выполнить? Возможно, вы можете использовать общие ограничения типов. –