die*_*ogs 86 c# reflection introspection instanceof
我知道is
和as
for instanceof
,但是反射isInstance()方法怎么样?
Ana*_*tts 180
bool result = (obj is MyClass); // Better than using 'as'
Run Code Online (Sandbox Code Playgroud)
Kon*_*lph 52
obj.getClass().isInstance(otherObj)
C#中Java的等价如下:
bool result = obj.GetType().IsAssignableFrom(otherObj.GetType());
Run Code Online (Sandbox Code Playgroud)
请注意,虽然Java和C#都在(via vs )的运行时类型对象(java.lang.Class
Java≣C#System.Type
)上工作,但Java 将对象作为其参数,而C#则需要另一个对象.obj
.getClass()
.getType()
isInstance
IsAssignableFrom
System.Type
小智 39
取决于,is
如果您不想使用演员表的结果,请使用,as
如果您这样做则使用.你几乎不想写:
if(foo is Bar) {
return (Bar)foo;
}
Run Code Online (Sandbox Code Playgroud)
代替:
var bar = foo as Bar;
if(bar != null) {
return bar;
}
Run Code Online (Sandbox Code Playgroud)