Laut Intellisense und MSDN-Dokumentation für string.Split , dort sind keine parameterlosen Überladungen von string.Split. Aber wenn ich
eintippe %Vor%Es kompiliert. Und es funktioniert. Ich habe dies in Visual Studio 2008 und 2010 verifiziert. In beiden Fällen zeigt Intellisense die parameterlose Überladung nicht.
Gibt es einen Grund dafür? Gibt es weitere fehlende Überladungen aus den MSDN / Intellisense-Dokumenten? In der Regel kann ich mithilfe von Überladungen in IntelliSense herausfinden, welche Überladung zu verwenden ist. Ich hasse es zu denken, dass ich andere verfügbare Optionen im gesamten .Net-Framework vermisse.
EDIT: wie oben gezeigt, teilt es sich auf Leerzeichen.
Das liegt daran, dass Split eine Params-Überladung hat. Keine Parameter zu geben ist dasselbe wie ein leeres Array zu geben. Mit anderen Worten, Sie rufen diese Überladung auf.
%Vor%Ist das Gleiche wie:
%Vor%Hier ist die Dokumentation zum params-Schlüsselwort . Wie Sie wahrscheinlich wissen, wird es verwendet, um einer Methode eine variable Anzahl von Parametern zu geben. Diese Zahl kann Null sein.
Ich wette, es passt zu diesem String.Split
overload:
0 Argumente sind für diese Funktion akzeptabel. Wenn keine Trennzeichen angegeben werden, wird standardmäßig Leerraum verwendet .
Was Sie hier aufrufen, ist string.Split (params char [] separator)
Sie können eine durch Kommas getrennte Liste von Argumenten des in der Parameterdeklaration angegebenen Typs oder ein Array von Argumenten des angegebenen Typs senden. Sie können auch keine Argumente senden .
Es hat etwas damit zu tun, Parameter als 'params array []' auszusetzen. Sehen Sie sich die Signatur der folgenden Methode an, die in MSDN dokumentiert ist, also übergeben Sie offensichtlich ein leeres Array.
%Vor% String.Split()
hat eine Reihe von Überlastungen; Sie haben Recht, dass keine dieser Überladungen parameterlos ist, einer davon ist jedoch varadisch: String.Split(params char[])
. Der Teil der Argumentliste mit variabler Länge kann eine beliebige Anzahl von Argumenten enthalten, einschließlich null - das ist die Überladung, die Sie hier auslösen.
Tags und Links .net visual-studio intellisense