IList<T>
パラメータとしてを使用するメソッドがあります。そのT
オブジェクトのタイプを確認し、それに基づいて何かを行う必要があります。T
値を使おうとしましたが、コンパイラが許可していません。私の解決策は次のとおりです。
private static string BuildClause<T>(IList<T> clause)
{
if (clause.Count > 0)
{
if (clause[0] is int || clause[0] is decimal)
{
//do something
}
else if (clause[0] is String)
{
//do something else
}
else if (...) //etc for all the types
else
{
throw new ApplicationException("Invalid type");
}
}
}
これを行うには、より良い方法が必要です。T
渡されたタイプを確認してからswitch
ステートメントを使用する方法はありますか?