我想做出与以下类似的断言:
aMethod.ReturnType == double
aString.GetType() == string
以上示例显然无法编译,因为double
和string
不是Type
类型的对象,它们甚至不是合法的C#表达式。
如何表达某个C#类型的Type
?
答案 0 :(得分:6)
使用typeof获取和比较类型。
aMethod.ReturnType == typeof(double)
aString.GetType() == typeof(string)
答案 1 :(得分:2)
使用is运算符
检查对象是否与给定类型兼容。
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
答案 2 :(得分:0)
正如其他人所说,使用typeof(YourType)
或is
运算符(请注意,is
不是严格的运算符(考虑继承):例如,{{1是真的!)..
我不知道你为什么需要MyClass is object
,但似乎你需要generic parameters。试试看 !