it-swarm.com.de

Unterschied zwischen "String" und "String" in .NET und welcher ist der beste?

In .NET Framework gibt es zumindest in der C # -Sprache zwei "Versionen" des Zeichenfolgentyps:

  • "string"
  • "String"

Es scheint, dass sie austauschbar sind, aber sind sie es wirklich? Wenn sie nicht austauschbar sind, ist es im Allgemeinen besser, eine anstelle der anderen zu verwenden, und unter welchen Umständen?

15
Cyberherbalist

Nun nach dem MSDN

string ist ein Alias ​​für String in .NET Framework.

Wo "String" tatsächlich ist System.String.

Ich würde sagen, dass sie austauschbar sind und es keinen Unterschied gibt, wann und wo Sie das eine oder das andere verwenden sollten.

Es wäre jedoch besser, mit dem übereinzustimmen, den Sie verwendet haben.

30
ChrisF

Wie bereits erwähnt, sind sie dasselbe und string ist nur ein Alias ​​für String.

Für das, was es wert ist, benutze ich string, um Typen zu deklarieren - Variablen, Eigenschaften, Rückgabewerte und Parameter. Dies steht im Einklang mit der Verwendung anderer Systemtypen - int, bool, var usw. (obwohl Int32 Und Boolean ebenfalls korrekt sind ).

Ich verwende String, wenn ich die statischen Methoden für die String-Klasse verwende, wie String.Split() oder String.IsNullOrEmpty(). Ich halte dies für sinnvoller, da die Methoden zu einer Klasse gehören und mit der Verwendung anderer statischer Methoden übereinstimmen.

21
Kirk Broadhurst

Ich würde vorschlagen, Kleinbuchstaben string zu verwenden. In Großbuchstaben String wird die erste Klasse mit dem Namen String verwendet, die in den importierten Namespaces gefunden wird. Dies ist im Allgemeinen System.String. Es ist möglich, dass stattdessen Ihre eigene String-Klasse verwendet wird.

4
Bryan Boettcher

string ist ein C # -Schlüsselwort, das einfach ein Alias ​​für System.String ist

..aber da es sich um ein Schlüsselwort handelt, zeigt es Ihr Syntax-Farbeditor/Ihre IDE in der Schlüsselwortfarbe an, genau wie int, double, if, else usw. Stilistisch gesehen bevorzugen Sie möglicherweise das Schlüsselwort anstelle des System.String Typ (oder einfach String, nachdem Sie using System; ausgeführt haben).

Dies ist jedoch ein Nischenpunkt, da bool, char, int, double und string Schlüsselwort-Aliase für Systemtypen sind , string ist eine ungerade Zahl, da es sich um einen Referenztyp handelt und die anderen Werttypen sind.

4
JBRWilkinson

string ist nur ein Alias ​​für String, sie sind letztendlich gleich.

Sie können verwenden, was Sie bevorzugen, obwohl ich im Allgemeinen string verwende, wenn ich es ähnlich wie einen primitiven Datentyp verwenden möchte (ähnlich wie int, float oder bool) und String, wenn ich vorhabe, es als Objekt/Klasse zu verwenden. Zum Beispiel:

string foo = "   ";
if (String.isNullOrWhitespace(foo)) 
{
    // ...
}

Im obigen Fall plane ich, foo einfach zum Speichern von Text (effektiv als Grundelement) zu verwenden, also verwende ich string; Wenn ich jedoch String.isNullOrWhitespace(string) aufrufe, verwende ich String. Ich mache das, weil im Allgemeinen der erste Buchstabe von Klassennamen groß geschrieben wird (String), während der erste Buchstabe von Grundelementen (wie int) nicht groß geschrieben wird.

2
BBB