0

次のようなコードを書きたいと思います。

if (obj.IsComparableTo(integer))
    Console.Write("successed");

これは可能ですか?そうでない場合、これを判断する別の方法はありますか?

4

4 に答える 4

2

比較可能の意味に応じて、おそらく次のようになります。

var comparable = obj as IComparable<int>;
if(comparable != null) Console.Write("successed");

ただし、これはインターフェイスのみを説明するものであり、これはまれです。ほとんどの暗黙的な変換は、チェックするのが難しくなります。コンテキストを追加すると、より適切なソリューションが見つけやすくなる可能性があります。

于 2011-05-19T09:19:14.107 に答える
1

IComparableインターフェイスを実装しない限り、2 つの異なるタイプのオブジェクトを比較することはできません。

于 2011-05-19T09:23:18.383 に答える
-3

私はそれを見つけました:

        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");
于 2011-05-24T04:23:32.397 に答える