Wiem o is
i as
dla instanceof
, ale co z refleksyjną metodą isInstance () ?
c#
reflection
introspection
instanceof
diegogs
źródło
źródło
is
wymagał natomiast nazwy typu. Właśnie tego chciał OP: odpowiednik JavaisInstance
. Druga odpowiedź jest po prostu błędna, pomimo absurdalnej liczby głosów za.bool result = (obj is MyClass); // Better than using 'as'
źródło
new Child() is Parent
)Zależy, użyj,
is
jeśli nie chcesz używać wyniku rzutowania i użyj,as
jeśli to zrobisz. Rzadko kiedy chcesz pisać:if(foo is Bar) { return (Bar)foo; }
Zamiast:
var bar = foo as Bar; if(bar != null) { return bar; }
źródło
tuż przy mojej głowie, możesz też zrobić:
bool result = ((obj as MyClass) != null)
Nie jestem pewien, który będzie działał lepiej. Zostawię to komuś innemu do analizy porównawczej :)
źródło
Poniższy kod może być alternatywą dla
IsAssignableFrom
.Zobacz opis Type.IsInstanceOfType w witrynie MSDN.
źródło