我想做出类似于以下的断言:
aMethod.ReturnType == double
aString.GetType() == string
上面的示例显然无法编译,因为double
它们string
不是 type 的对象Type
,它们甚至不是合法的 C# 表达式。
如何表达Type
某种 C# 类型的 a?
我想做出类似于以下的断言:
aMethod.ReturnType == double
aString.GetType() == string
上面的示例显然无法编译,因为double
它们string
不是 type 的对象Type
,它们甚至不是合法的 C# 表达式。
如何表达Type
某种 C# 类型的 a?
使用 typeof 获取和比较类型。
aMethod.ReturnType == typeof(double)
aString.GetType() == typeof(string)
使用是运算符
检查对象是否与给定类型兼容。
bool result1 = aMethod.ReturnType 是双精度;
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
正如其他人所说,使用typeof(YourType)
或is
运算符(小心,is
不是严格的运算符(考虑继承):例如,MyClass is object
是真的!)..
我不知道你为什么需要aMethod.ReturnType
,但似乎你需要泛型参数。试试看 !