21
Tを列挙型に制限するジェネリックメソッドを作成する
Enum.Parseという概念を拡張する関数を構築しています Enum値が見つからない場合にデフォルト値を解析できるようにします 大文字と小文字は区別されません だから私は以下を書きました: public static T GetEnumFromString<T>(string value, T defaultValue) where T : Enum { if (string.IsNullOrEmpty(value)) return defaultValue; foreach (T item in Enum.GetValues(typeof(T))) { if (item.ToString().ToLower().Equals(value.Trim().ToLower())) return item; } return defaultValue; } エラー制約は特別なクラスにはできませんSystem.Enum。 十分に公平ですが、Generic Enumを許可する回避策はありますか、またはParse関数を模倣して型を属性として渡す必要があります。これにより、醜いボックス化の要件がコードに強制されます。 編集以下のすべての提案は感謝されています。 解決しました(大文字と小文字を区別しないようにループを抜けました-XMLの解析時にこれを使用しています) public static class EnumUtils { public static T ParseEnum<T>(string value, T …