Vra

Ek weet hoe om 'n voorwerp te toets om te sien of dit is 'n soort, met behulp van die IS navraag Bv.

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

maar hoe kan jy toets vir dit nie "bar" ?, ek kan nie lyk na 'n navraag wat werk met is om te toets vir 'n negatiewe resultaat vind.

BTW - Ek het 'n aaklige gevoel dit is soooo duidelik, so jammer by voorbaat ...

Was dit nuttig?

Oplossing

if (!(foo is bar)) {
}

Ander wenke

Jy kan ook die as operateur .

  

Die as operateur gebruik word om uit te voer   herleiding tussen versoenbaar tipes.

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

Daar is geen spesifieke navraag

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

Jy moet verduidelik of jy wil toets wat 'n voorwerp is presies 'n sekere tipe of oordraagbaar van 'n sekere tipe. Byvoorbeeld:

public class Foo : Bar {}

En veronderstel jy het:

Foo foo = new Foo();

As jy wil weet of cat nie Bar (), dan sou jy dit doen:

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

As jy wil om seker te maak dat cat nie trek uit Bar, dan 'n maklike tjek is aan die gebruik as navraag.

Bar bar = foo as Bar;
if(bar == null) {/* foo is not a bar */}
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top