319 votes

C# : ' est ' mot-clé et en vérifiant ne pas

Il s’agit d’une question idiote, mais vous pouvez utiliser ce code pour vérifier si quelque chose est un type particulier...

Y a-t-il une façon plus élégante pour Rechercher l’instance de « Non » ?

Oui, oui... question idiote...

Parce qu’on s’interroge sur ce que le code ressemble, c’est juste un simple retour au début d’une méthode.

326voto

Mehrdad Afshari Points 204872
if(!(child is IContainer))

est le seul opérateur à l'aller (il n'y a pas d' IsNot opérateur).

Vous pouvez construire une méthode d'extension qui n':

public static bool IsA<T>(this object obj) {
    return obj is T;
}

et puis l'utiliser pour:

if (!child.IsA<IContainer>())

Et vous avez pu suivre sur le thème:

public static bool IsNotAFreaking<T>(this object obj) {
    return !(obj is T);
}

if (child.IsNotAFreaking<IContainer>()) { // ...


Mise à jour (en tenant compte de l'OP de l'extrait de code):

Puisque vous êtes en fait un moulage de la valeur par la suite, vous pouvez simplement utiliser as à la place:

public void Update(DocumentPart part) {
    part.Update();
    IContainer containerPart = part as IContainer;
    if(containerPart == null) return;
    foreach(DocumentPart child in containerPart.Children) { // omit the cast.
       //...etc...

116voto

cjk Points 27463
Pour ce faire, cliquez sur

10voto

Saint Gerbil Points 1774

Pourquoi ne pas simplement utiliser l’autre ?

Son propre familier et simple ?

10voto

Robert Cartaino Points 12173

La façon dont vous l’avez est bien, mais vous pouvez créer un ensemble de méthodes d’extension pour faire « une façon plus élégante pour Rechercher l’instance « Non » ».

Ensuite, vous pourriez écrire :

Profiter, Robert C. Cartaino

5voto

BFree Points 46421

Laid ? Je suis en désaccord. La seule autre façon (je pense personnellement que c’est « laid ») :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X