如何确定Type是否为RunTimeType类型?我有这个工作,但它有点kludgy:
private bool IsTypeOfType(Type type)
{
return type.FullName == "System.RuntimeType";
}
Run Code Online (Sandbox Code Playgroud)
我想你真的想知道一个Type对象是否描述了这个Type类,但是Type对象是否typeof(RuntimeType)存在typeof(Type),因此将它与typeof(Type)失败进行比较.
您可以做的是检查Type对象描述的类型的实例是否可以分配给类型的变量Type.这给出了期望的结果,因为RuntimeType源于Type:
private bool IsTypeOfType(Type type)
{
return typeof(Type).IsAssignableFrom(type);
}
Run Code Online (Sandbox Code Playgroud)
如果您确实需要知道Type描述Type该类的对象,可以使用GetType方法:
private bool IsRuntimeType(Type type)
{
return type == typeof(Type).GetType();
}
Run Code Online (Sandbox Code Playgroud)
但是,因为typeof(Type) != typeof(Type).GetType(),你应该避免这种情况.
例子:
IsTypeOfType(typeof(Type)) // true
IsTypeOfType(typeof(Type).GetType()) // true
IsTypeOfType(typeof(string)) // false
IsTypeOfType(typeof(int)) // false
IsRuntimeType(typeof(Type)) // false
IsRuntimeType(typeof(Type).GetType()) // true
IsRuntimeType(typeof(string)) // false
IsRuntimeType(typeof(int)) // false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1142 次 |
| 最近记录: |