以下のように、ジェネリックを介してこれを行うことができることはわかっていますが、ジェネリックを使用して親型を返す拡張機能を構築するにはどうすればよいですか?
汎用拡張署名:public static TEnum FromString<TEnum>(this Enum par , string val ) where TEnum : Enum {
return (TEnum) Enum.Parse(par.GetType(), val);
}
署名スタイル、私はそれがうまくいかないことを知っていますが、私が探しているものはちょっと.
public static this FromString(this Enum par , string val ) {
return Enum.Parse(par.GetType(), val);
}
基本的に、1つのプロセスで値を文字列に解析する一連の列挙型があり、受信者として、検証のためにその文字列値を列挙型に解析する必要があります。最終的に、string
値が列挙子で有効な値でない場合は、null またはdefault
値が返されます。source
ジェネリックを実行しなくても、列挙子の型を返すことができる必要があるという事実です。
それが不可能な場合、それはkewlです。ジェネリックを使用せずに拡張ロジックパターンを使用して実行しようと考えただけです。