私はこれをしたい:
public void MyMethod<T>(T myArg) where T: DataTable, String
{
...
}
これは可能ですか?
それを2つの別々の方法にすることが無限に望ましいでしょう。
public void MyMethod(DataTable myArg)
{
...
}
public void MyMethod(String myArg)
{
...
}
または、ジェネリックの場合(この場合、なぜジェネリックが必要なのかわかりません)
public void MyMethod<T>(T myArg) where T: DataTable
{
...
}
public void MyMethodStr<T>(T myArg) where T: string
{
...
}
または最悪の場合、これらのタイプのいずれでもない場合はエラーをスローします。コンパイルではなく実行時にスローされるため、これは最も望ましくありません。
public void MyMethod<T>(T myArg)
{
if(myArg is String == false && myString is DataTable == false)
throw new InvalidArgumentException(...);
}
しかし、それ以外に、違います。