내가 알고있는 is
과 as
에 대한 instanceof
,하지만 반사에 대한 isInstance () 방법은?
내가 알고있는 is
과 as
에 대한 instanceof
,하지만 반사에 대한 isInstance () 방법은?
답변:
obj.getClass().isInstance(otherObj)
C # 의 Java에 해당하는 것은 다음과 같습니다.
bool result = obj.GetType().IsAssignableFrom(otherObj.GetType());
Java와 C # 모두 ( vs 를 통해 )의 런타임 유형 객체 (Java java.lang.Class
≣ C # System.Type
)에서 작동 하지만 Java 는 객체를 인수로 사용하는 반면 C #은 다른 객체를 기대 합니다.obj
.getClass()
.getType()
isInstance
IsAssignableFrom
System.Type
is
대조적으로 유형 이름이 필요합니다. 이것이 OP가 원했던 것입니다 : Java의 isInstance
. 다른 대답은 말도 안되는 찬성 투표 수에도 불구하고 잘못되었습니다.
bool result = (obj is MyClass); // Better than using 'as'
new Child() is Parent
)
내 머리 꼭대기에서 다음과 같이 할 수도 있습니다.
bool result = ((obj as MyClass) != null)
어느 것이 더 잘 수행 될지 확실하지 않습니다. 나는 그것을 벤치마킹하기 위해 다른 사람에게 맡길 것입니다 :)
아래 코드는 IsAssignableFrom
.
parentObject.GetType().IsInstanceOfType(inheritedObject)
MSDN의 Type.IsInstanceOfType 설명을 참조하십시오 .