次のようなコードを書きたいと思います。
if (obj.IsComparableTo(integer))
Console.Write("successed");
これは可能ですか?そうでない場合、これを判断する別の方法はありますか?
次のようなコードを書きたいと思います。
if (obj.IsComparableTo(integer))
Console.Write("successed");
これは可能ですか?そうでない場合、これを判断する別の方法はありますか?
比較可能の意味に応じて、おそらく次のようになります。
var comparable = obj as IComparable<int>;
if(comparable != null) Console.Write("successed");
ただし、これはインターフェイスのみを説明するものであり、これはまれです。ほとんどの暗黙的な変換は、チェックするのが難しくなります。コンテキストを追加すると、より適切なソリューションが見つけやすくなる可能性があります。
IComparable
インターフェイスを実装しない限り、2 つの異なるタイプのオブジェクトを比較することはできません。
私はそれを見つけました:
public bool isComparable<t>(object o)
{
try
{
object r = (t)o;
}
catch
{
return false;
}
return true;
}
それを使用するには:
if (isComparable<int>(32).ToString())
Console.WriteLine("success");
else
Console.WriteLine("fail");