ジェネリック パラメータを持つメソッドがあります。
internal void DoSomething<T>(T workWithThis)
{
}
ここで、指定したいいくつかのインターフェイスの 1 つを継承するパラメーターのみを受け入れるように、このメソッドを制限したいと考えています。しかし、私はまだその方法を見つけていません。私が欲しいものは次のようになります:
internal void DoSomething<T>(T workWithThis) where T : ISomething | ISomethingElse
{
}
明らかにこれは機能していないので、静的メソッドで T のタイプを確認してみました。
public static bool CheckType(Type t)
{
return */check here*/
}
internal void DoSomething<T>(T workWithThis) where T : CheckType(typeof(T))
{
}
明らかにこれもうまくいきません。問題はなぜですか?私の理解に基づいて、コンパイラがそれを妨げているのはなぜですか、それが機能しない理由はありません