谁能帮帮我?我不知道我做错了什么,但似乎会有一个简单的解决方案:
通常你可以像这样使用is
:
if (theObject is MyClass) ...
但是如果你想指定它在运行时检查的类型,这不会编译
Type theType = ...
if (theObject is theType) ...
我试过这样做:
if (theObject.GetType() == theType) ...
但这只有在 theType
是那个确切的类型并且没有像 is
语句那样考虑继承的情况下才有效
我确信存在一个解决方案(可能使用泛型)但我现在想不出一个(它是那种你在点击“发布”的那一刻突然想起如何做的事情)
最佳答案
听起来你想要IsAssignableFrom() ,如
if (theType.IsAssignableFrom(theObject.GetType())) ...
关于c# - 使用在运行时定义类型的 'is',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3496328/