VB.NET - IsNothing versus ist nichts
Wer hier mit VB.NET und haben eine starke Präferenz für oder gegen die Verwendung von IsNothing
im Gegensatz zu Is Nothing
(zum Beispiel If IsNothing(anObject)
oder If anObject Is Nothing...
)? Wenn ja, warum?
EDIT: Wenn Sie denken, Sie sind gleichermaßen akzeptabel ist, denken Sie, es ist am besten wählen Sie eine und bleiben Sie dabei, oder ist es OK, Sie zu mischen?
Kommentar zu dem Problem - Öffnen
Es sind viele gute Gründe, um zu vermeiden, mit
IsNothing()
@JesseChisholm, Es ist zu viel für einen einzelnen Kommentar, aber meine vorherigen Kommentar gepostet diesen link auf einen Artikel, die zählt 5 verschiedene blog.reneorban.com/2011/12/vbnet-isnothing-vs-is-nothing.html
Die tech Antworten sind wirklich interessant, aber schade, dass die Frage war VL ein bisschen zu offen und erzeugt einige Antworten, ohne Einsatz, nur immer vage persönliche Präferenz
InformationsquelleAutor der Frage Luke Girvin | 2008-08-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn man einen Blick auf den MSIL-wie es ausgeführt wird, du wirst sehen, dass es nicht kompilieren, bis auf die genau gleichen code. Wenn Sie IsNothing() macht es wirklich einen Aufruf der Methode im Gegensatz zu der Auswertung des Ausdrucks.
Dem Grund würde ich dazu neigen, lehnen in Richtung "Nichts" ist, wenn ich bin zu negieren wird "IsNot" Nichts " statt "Nicht IsNothing(object)", welche ich persönlich finde, sieht besser lesbar.
InformationsquelleAutor der Antwort lomaxx
Ich finde, dass Patrick Steele diese Frage beantwortet am besten auf seinem blog: Vermeidung IsNothing()
Habe ich nicht kopiert seine Antwort hier, um sicherzustellen, Patrick Steele bekommen, Kredit für seinen Beitrag. Aber ich denke, wenn Sie versuchen zu entscheiden, ob Sie Nichts oder IsNothing sollten Sie Las seine post. Ich denke, Sie werden Zustimmen, dass ist Nichts Ist die beste Wahl.
InformationsquelleAutor der Antwort Jack Snipes
Stimme ich mit "Nichts". Wie oben erwähnt, ist es einfach zu negieren mit "IsNot Nothing".
Ich finde das einfacher zu Lesen...
als diese...
InformationsquelleAutor der Antwort proudgeekdad
Sie sollten unbedingt vermeiden, mit
IsNothing()
Hier sind 4 Gründe aus dem Artikel IsNothing() VS Ist Nichts
Allem
IsNothing(object)
hat alles übergeben, um es als ein Objekt, auch Wert-Typen! Da Werttypen nichtNothing
es eine ganz verschwendet prüfen.Nehmen Sie das folgende Beispiel:
Dieser wird kompiliert und läuft Prima, in der Erwägung, dass diese:
Wird nicht kompiliert, sondern der compiler löst den Fehler:
IsNothing(object)
ist eigentlich Teil der Teil derMicrosoft.VisualBasic.dll
.Dies ist unerwünscht, da Sie eine unnötige Abhängigkeit von den VisualBasic-Bibliothek.
Langsam 33.76% langsamer in der Tat (über 1000000000 Iterationen)!
Vielleicht persönliche Vorliebe sein, aber
IsNothing()
liest sich wie ein Yoda Condition. Wenn man sich eine variable, die Sie überprüft haben, es ist Zustand, mit dem es als den Gegenstand Ihrer Untersuchung.also nicht es x zu tun? --- NICHT Ist
x
ing eine Eigenschaft von es?Also ich denke
If a IsNot Nothing
liest sich besser alsIf Not IsNothing(a)
InformationsquelleAutor der Antwort KyleMit
VB ist voll von Dingen wie, dass der Versuch zu machen, beide "Englisch" und komfortabel für Menschen, die verwendet werden, um Sprachen, die die Verwendung () und {} eine Menge.
Zum Beispiel auf den "wie Englisch" - Seite...VB hat die "Ain ' T" Schlüsselwort...und Nein, ich bin nicht zu scherzen. Und auf der anderen Seite, wie Sie wahrscheinlich bereits wissen, die meisten der Zeit, können Sie () mit der Funktion Anrufe, wenn Sie wollen, aber nicht müssen.
Ich lieber IsNothing()...aber ich verwende C-und C#, so ist das halt, was bequem ist. Und ich denke, es ist besser lesbar. Aber gehen Sie mit, was fühlt sich wohler zu Ihnen.
InformationsquelleAutor der Antwort Adam Haile
Ich bin Neigung in Richtung der "Nichts" - alternative, vor allem, weil es scheint mehr OO.
Sicherlich Visual Basic ain ' T habe das ist nicht das, keyword.
InformationsquelleAutor der Antwort deadtime
Ich auch eher auf die Nichts-version teilweise von der Nutzung so viel wie ich in SQL.
InformationsquelleAutor der Antwort Brian Childress
Verwendete ich zunächst IsNothing aber ich habe schon hin mit Nichts in neueren Projekten, vor allem für die Lesbarkeit. Die einzige Zeit, die ich mit dem stick IsNothing ist, wenn ich die Pflege code wo das ist überall und ich will konsistent bleiben.
InformationsquelleAutor der Antwort Chris Tybur
Wird Nichts erfordert ein Objekt, das zugewiesen wurde, um den Wert Nothing. IsNothing() kann jede variable, die nicht initialisiert wurde, einschließlich der numerischen Typs. Dies ist nützlich, wenn Sie z.B. testen, ob ein optionaler parameter übergeben wurde.
InformationsquelleAutor der Antwort ybacou