4

Java 出身の C# 初心者です。特定のオブジェクトが Number であるかどうか (Integer、Double、Float など) を確認したいと考えています。Java では、 と言ってこれを行いましたif (toRet instanceof Number)。似たような C# のようなものがあることを願っif (toRet is Number)ていますが、これまでのところ、これを行う Number クラスを見つけることができませんでした。これを行う方法はありますか、または整数、倍精度などを手動で確認する必要がありますか?

詳細については編集してください:基本的に私がやりたいことは、最終的にバイト配列を持つことです。ただし、配列がテキスト ファイルに格納されている場合、私が使用しているパーサーは、それが整数配列または double 配列であると判断することがあります。Javaでは、これがありました:

JSONArray dblist = (JSONArray)result_;
byte[] reallyToRet = new byte[dblist.size()];
Object toComp = dblist.get(0);

if (toComp instanceof Number)
    for (int i=0; i < dblist.size(); ++i) {
        byte elem = ((Number) dblist.get(i)).byteValue();
        reallyToRet[i] = elem;
    }

    return reallyToRet;
}

ここで重要なのは if ステートメントです。のオブジェクトはdblist整数として解析されることもあれば、double として解析されることもあり、バイトとして解析されることはめったにありませんが、最後に本当に気にするのはバイト値だけです。

4

2 に答える 2

0

そのためのクラスについてはわかりません。ただし、たとえば、整数については確認できます

int val;
if(Int32.TryParse(integer, out val))  

else

おそらく、Double.TryParse(number, out val) などを使用できます。

于 2013-07-25T15:43:29.757 に答える