それについての私の考慮事項は、指定された型がすべての呼び出しで1回だけではなく正しくない場合、1回だけ呼び出される静的コンストラクターでそれを行うことを誰もが好む理由であり、間違った型が使用されているコードのすべての部分で例外を取得することを期待しています。
これは私が意味することの例です:
internal sealed class GenericTypeThatRequiresAnEnum<T> {
static GenericTypeThatRequiresAnEnum() {
if (!typeof(T).IsEnum) {
throw new ArgumentException("T must be an enumerated type");
}
}
}
非静的コンストラクターだけではないのはなぜですか?