2

次のような主張をしたいと思います。

aMethod.ReturnType == double
aString.GetType() == string

上記の例は、 and が type のオブジェクトではないため、明らかにコンパイルされませんdoublestringこれらTypeは正当な C# 式でさえありません。

Type特定の C# 型を表現するにはどうすればよいですか?

4

3 に答える 3

6

型を取得して比較するには、typeof を使用します。

aMethod.ReturnType == typeof(double)

aString.GetType() == typeof(string)
于 2012-12-10T07:27:50.030 に答える
2

使用演算子です

オブジェクトが特定の型と互換性があるかどうかを確認します。

bool result1 = aMethod.ReturnType は double です。

bool result2 = aString is string;

次の例を検討してください。

bool result1 = "test" is string;//returns true;
bool result2 = 2 is double; //returns false
bool result3 = 2d is double; // returns true;

編集:値ではなくタイプであることを見逃したaMethod.ReturnTypeので、次を使用して確認することをお勧めしますtypeof

bool result1 = typeof(aMethod.ReturnType) == double;

次の例を考えてみましょう。

object d = 10d;
bool result4 = d.GetType() == typeof(double);// returns true
于 2012-12-10T07:26:52.577 に答える
0

他の人が言ったようtypeof(YourType)に、またはis演算子を使用してください(注意しisてください、厳密な演算子ではありません(継承について考えてください):たとえば、MyClass is objectis true です!)。

が必要な理由はわかりませんが、ジェネリック パラメータaMethod.ReturnTypeが必要なようです。試してみる !

于 2012-12-10T08:29:46.417 に答える