可能性の重複:
Generic constraints, where T : struct and where T : classできないことは、型制約でジェネリックメソッドをオーバーロードする
あなたがC#で相互に排他的なタイプの制約を使用して、一般的な方法をオーバーロードすることはできません、特定の理由はありますか?例えば、これらの方法で取る:
T DoSomething<T>(T arg) where T : class
{ /* Do something */ }
T DoSomething<T>(T arg) where T : struct
{ /* Do something */ }
と
DoSomething("1");
DoSomething(1);
と私はそれを見る方法は、それらを起動しようとすると、doSomethingの()メソッドは、これまで彼らが取るパラメータのように、相互に排他的です - 最初のものは参照型、2番目のものは値型です。コンパイラは、文字列引数を使用したDoSomething呼び出しが最初のメソッドに行き、int引数を持つDoSomething呼び出しが2番目のメソッドに行くことを伝えることができます。
ジェネリックで概念的に何か不足していますか?または、これはC#で実装されていない機能ですか?
を参照してください。ソリューションを見つけることができず、検索で結果が返ってこない場合や、結果が多すぎる場合は、本当にイライラします。 –