In .NET Framework gibt es mindestens in der C # -Sprache zwei "Versionen" des Zeichenfolgentyps:
- "string"
- "String"
Es scheint, dass sie austauschbar sind, aber sind sie wirklich? Wenn sie nicht austauschbar sind, ist es im Allgemeinen besser, eine anstelle der anderen zu verwenden, und unter welchen Umständen?
string
existiert nicht in.net
, es existiert nur in C #.Antworten:
Naja laut MSDN
Wo "String" ist in der Tat
System.String
.Ich würde sagen, dass sie austauschbar sind und es keinen Unterschied gibt, wann und wo Sie die eine oder andere verwenden sollten.
Es wäre jedoch besser, mit demjenigen übereinzustimmen, den Sie verwendet haben.
quelle
String
(und daher auchstring
nach Alias) sind Referenztypen.Wie bereits erwähnt, sind sie dasselbe und
string
nur ein Pseudonym fürString
.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. (obwohlInt32
undBoolean
ist auch richtig).Ich benutze
String
bei der Verwendung der statischen Methoden für die String-Klasse wieString.Split()
oderString.IsNullOrEmpty()
. Ich halte dies für sinnvoller, da die Methoden zu einer Klasse gehören und damit im Einklang stehen, wie ich andere statische Methoden verwende.quelle
Ich würde vorschlagen, Kleinbuchstaben zu verwenden
string
. In GroßbuchstabenString
wird die erste Klasse mit dem Namen String verwendet, die in den importierten Namespaces gefunden wirdSystem.String
. Dies ist im Allgemeinen der Fall . Es ist möglich, dass stattdessen Ihre eigene String-Klasse verwendet wird.quelle
String
arbeiten, es ist nie möglich zu tricksenstring
.string
.string
ist ein C # -Schlüsselwort, das einfach ein Alias für das istSystem.String
..aber da es sich um ein Schlüsselwort handelt, wird es in Ihrem Syntax - Farbeditor / Ihrer IDE in Schlüsselwortfarbe angezeigt, genau wie int, double, if, else usw. Stilistisch könnten Sie es vorziehen, das Schlüsselwort anstelle des
System.String
Typs (oder kurzString
danach) zu verwenden du hast getanusing System;
).Dies ist ein Nischen Punkt obwohl, wie obwohl
bool
,char
,int
,double
undstring
sind alle Keyword - Aliase für Systemtypen,string
eine ungerade-one-out , wie es ein Referenztyp ist und die anderen sind Werttypen.quelle
object
ist auch ein Keyword-Alias für einen Referenztypstring
ist nur ein Pseudonym fürString
, sie sind letztendlich gleich.Sie können verwenden, was Sie bevorzugen, obwohl ich im Allgemeinen verwenden
string
, wenn ich es auf der Verwendung ähnlich wie bei einem primitiven Datentyp (ähnlich bin die Planungint
,float
oderbool
) undString
wenn ich Planung auf mich als Objekt / Klasse. Beispielsweise:Im obigen Fall habe ich vor,
foo
einfach Text zu speichern (effektiv als Grundelement), also verwende ichstring
; wenn ich aber anrufeString.isNullOrWhitespace(string)
benutze ichString
. Ich mache das, weil im Allgemeinen der erste Buchstabe von Klassennamen groß geschrieben wird (String
), während der erste Buchstabe von Primitiven (wie zint
) nicht.quelle
String wird mit dem Namespace System.String verwendet, String wird mit der C # -Compilerspezifikation verwendet, außerdem ist System.String der Referenztypwert. Es wird bevorzugt, mit Systemobjekten umzugehen, Zeichenfolgen nur für literale Zwecke. System und System funktionieren beide gleich.
String wird auch zum Vergleichen, Gleichstellen und für andere Zwecke verwendet.
quelle