Je connais is
et as
pour instanceof
, mais qu'en est-il de la méthode réflexive isInstance () ?
c#
reflection
introspection
instanceof
diegogs
la source
la source
is
requis un nom de type, en revanche. C'est ce que voulait OP: l'équivalent de JavaisInstance
. L'autre réponse est tout simplement fausse malgré le nombre ridicule de votes positifs.bool result = (obj is MyClass); // Better than using 'as'
la source
new Child() is Parent
)Cela dépend, à utiliser
is
si vous ne souhaitez pas utiliser le résultat de la distribution et à utiliseras
si vous le faites. Vous ne voulez presque jamais écrire:if(foo is Bar) { return (Bar)foo; }
Au lieu de:
var bar = foo as Bar; if(bar != null) { return bar; }
la source
juste du haut de ma tête, vous pouvez aussi faire:
bool result = ((obj as MyClass) != null)
Je ne sais pas ce qui fonctionnerait le mieux. Je laisserai à quelqu'un d'autre le soin de faire un benchmark :)
la source
Le code ci-dessous peut être une alternative à
IsAssignableFrom
.Consultez la description de Type.IsInstanceOfType dans MSDN.
la source