Я знаю is
и as
за instanceof
, но как насчет отражающей isInstance () метод?
c#
reflection
introspection
instanceof
Diegogs
источник
источник
is
для сравнения требуется имя типа. Это то, что хотел OP: эквивалент JavaisInstance
. Другой ответ просто неверен, несмотря на смехотворное количество голосов.bool result = (obj is MyClass); // Better than using 'as'
источник
new Child() is Parent
)Depends, используйте,
is
если не хотите использовать результат приведения, и используйте,as
если хотите. Вы вряд ли когда-нибудь захотите написать:if(foo is Bar) { return (Bar)foo; }
Вместо того:
var bar = foo as Bar; if(bar != null) { return bar; }
источник
просто вне моей головы, вы также можете сделать:
bool result = ((obj as MyClass) != null)
Не уверен, что будет лучше. Я оставлю это кому-то другому для тестирования :)
источник
Код ниже может быть альтернативой
IsAssignableFrom
.См. Описание Type.IsInstanceOfType в MSDN.
источник