Question

Je sais comment faire pour tester un objet pour voir si elle est d'un type, en utilisant le mot-clé is par exemple

if (foo is bar)
{
  //do something here
}

mais comment faites-vous tester pour elle de ne pas être "bar"?, Je n'arrive pas à trouver un mot-clé qui travaille avec EST de tester pour un résultat négatif.

BTW j'ai un horrible sentiment que c'est tellement évident, alors, toutes mes excuses à l'avance...

Était-ce utile?

La solution

if (!(foo is bar)) {
}

Autres conseils

Vous pouvez également utiliser l' en tant qu'opérateur.

L'opérateur est utilisé pour effectuer les conversions entre les types compatibles.

bar aBar = foo as bar; // aBar is null if foo is not bar

Il n'y a pas de mot-clé spécifique

if (!(foo is bar)) ...
if (foo.GetType() != bar.GetType()) .. // foo & bar should be on the same level of type hierarchy

Vous devez préciser si vous voulez tester qu'un objet est exactement un certain type ou assignables à partir d'un certain type.Par exemple:

public class Foo : Bar {}

Et supposons que vous avez:

Foo foo = new Foo();

Si vous voulez savoir si toto n'est pas Bar(), alors vous feriez cela:

if(!(foo.GetType() == tyepof(Bar))) {...}

Mais si vous voulez vous assurer que toto ne provient pas de Bar, puis un contrôle facilité est d'utiliser comme mot-clé.

Bar bar = foo as Bar;
if(bar == null) {/* foo is not a bar */}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top