Len () - Funktion vs String.Length-Eigenschaft; welche wählen?
Bin ich den Umstieg von VB6 auf VB.Net (VS 2010) und haben ein grundlegendes eher als expansive Verständnis der letzteren. Ich habe natürlich einiges an code... ich zögere, das Wort "upgrade", wenn "port" wäre treffender gegeben, dass das upgrade-Assistenten in früheren Versionen von VS kann auch nur auskommentiert den code und sagte: "Hey, warum gehst du nicht wieder von vorne anfangen?"
In einem Verfahren, das ich bringe über die Len()
- Funktion wurde verwendet, um zu bestimmen, die Länge einer string-variable. Das funktioniert noch in VB.Net (obwohl ich mir vorstellen, dass es tatsächlich ein Aufruf an die Strings.Len
Methode), aber die andere alternative ist, nur die Abfrage der .Length
Eigenschaft der variable.
Sich die Frage, welche nutzen und warum. Ich sah durch die entsprechenden MSDN-Seiten und alles, was Sie scheinen zu sagen, dass die Methode/Eigenschaft vorhanden ist. Nichts wird gesagt über performance-Probleme, insbesondere beim Schleifen der großen Zahl von anrufen beteiligt sein könnten.
Meine Frage ist, ob jemand bewusst alle getestet und bestätigt Vorteil der Verwendung eines Ansatzes über die anderen, oder ob es bloß eine Frage der persönlichen Vorliebe. Jegliche Hinweise auf ähnliche Situationen, ich kann auch machen wie ich die progression würde auch geschätzt werden, obwohl angesichts der Stack-Overflow-Richtlinien es ist nur dieses eine Problem, ich bin daran interessiert zu sehen, ob es gibt eine spezifische Antwort auf.
InformationsquelleAutor der Frage Alan K | 2012-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil man VB.NET Ihre
Strings
werden kannNothing
es sei denn, Sie explizit zu überprüfen, für, dass, meisten VB-Methoden, einschließlichLen
behandeln es die gleiche wieString.Empty
d.h.""
.Mit Reflektor können Sie sehen
Len
implementiert ist als ein null-check, Rückgabe0
fürNothing
und sonst Rückkehr.Length
und der JITter wird wahrscheinlich in-line anrufen.So, wenn Sie mit anderen VB-Methoden, ich würde vorschlagen, mit
Len
zu, es sei denn, Sie wissen, dieString
ist nichtNothing
oder zu überprüfen, obNothing
überall.InformationsquelleAutor der Antwort Mark Hurd
Also nach diese:
Wenn Sie Vertrauen, Ihre Wort, dann gibt ' s Ihre Antwort. Ansonsten Codierung eine test-und überarbeiten, sollte Ihnen die endgültige Antwort.
InformationsquelleAutor der Antwort Andy Merrick
Ich bin mir nicht sicher über die Besonderheiten des
Len()
Methode (meine Sprache der Wahl ist C#), aber ich würde sagen, auf jeden Fall gehen Sie mit derLength
Eigenschaft.Length
ist ein Mitglied derSystem.String
Klasse, in der Erwägung, dassLen()
nicht.Meine Vermutung ist, dass
Len()
ist nur ein VB-shim auf der Oberseite desLength
Eigenschaft. Jemand könnte wahrscheinlich machen das argument, dass mitLen()
ist mehr Redewendungen, die aus einer VB-Sicht. Ich denke, ich würde es vorziehen, verwenden Sie die Eigenschaft in der Klasse, anstatt verwenden Sie einfach einen anderen Mechanismus, nur weil es zur Verfügung gestellt, die durch die Sprache.InformationsquelleAutor der Antwort Andrew Cooper
Zusätzlich zu @Andrew ' s post, der Len() Funktion string aus Visual Basic run-time Bibliothek wo, wie
Length
ist eine Eigenschaft vonSystem.String
Klasse .net framework-API.InformationsquelleAutor der Antwort adatapost
Den
Len
Methode wird bereitgestellt, um die Abwärtskompatibilität mit alten VB6 (und älter) non-.NET code. Es gibt nichts technisch falsch mit der Verwendung es. Es wird funktionieren, und genauso gut. Aber, es ist besser, die neue zu verwenden .NET Weg, Dinge zu tun, Wann immer möglich. Außerhalb bekommen Sie mehr in die ".NETTO-Mentalität", obwohl, der einzige echte Vorteil der Verwendung vonString.Length
ist, dass es macht es leichter zu portieren den code auf andere .NET-Sprachen in der Zukunft.InformationsquelleAutor der Antwort Steven Doggart