Sie machen verschiedene Dinge! UBound
gibt Ihnen den letzten Index im Array, während Length
Ihnen die Länge gibt. Das sind nicht die gleichen, denn normalerweise wird UBound
Length - 1
sein.
Ubound besteht hauptsächlich aus Abwärtskompatibilität zu altem Code. Ich habe noch nie etwas gesehen, das sagt, dass es veraltet ist, aber gleichzeitig erkenne ich, dass es nicht wirklich mit der Art übereinstimmt, wie sie die Sprache in den letzten Jahren genommen haben. Dasselbe gilt für die Funktionen Len () und Left () in diesem Code. Sie sind der Weg der Vergangenheit, nicht der Zukunft. Je früher Sie sich anpassen, desto glücklicher werden Sie sein.
Für das, was es wert ist, ist das Argument weitgehend strittig. Mehr "moderne" Möglichkeiten, diesen Code zu schreiben, sehen ganz anders aus . Hier ist ein Beispiel:
%Vor%Für Performancegewinn war ich auch daran interessiert, welche Funktion die beste Performance hat.
Es scheint, dass die Länge -1 viel schneller ist als das UBound. Ich habe erwartet, dass UBound irgendwie schneller ist.
Nach 100.000.000 Zeiten scheint die Zeit für Länge -1 952ms und für UBound: 5844ms zu sein.
(Länge -1) ist ~ 6 mal schneller als UBound
Code zum Testen verwendet
%Vor%Versuchte verschiedene Dinge, um mögliche Optimierungen des Compilers zu eliminieren, alles mit dem gleichen Ergebnis wie oben beschrieben.
Es wurde von früheren VB-Tagen übernommen. UBound kann Ihnen den höchsten Index einer einzelnen Dimension in einem mehrdimensionalen Array geben. Länge gibt nur die Gesamtzahl der Elemente an.
Wenn Sie Folgendes angeben:
%Vor%Die Werte sind:
%Vor%Tags und Links vb.net