7569 Stimmen

Was ist der Unterschied zwischen String und String in C#?

Beispiel ( den Fall beachten ):

string s = "Hello world!";
String s = "Hello world!";

Wie lauten die Leitlinien für die Verwendung der einzelnen Mittel? Und was sind die Unterschiede?

227voto

Shivprasad Koirala Punkte 25296

Dieses YouTube Video demonstriert praktisch, wie sie sich unterscheiden.

Doch nun zu einer langen Antwort in Textform.

Wenn wir über .NET Es gibt zwei verschiedene Dinge: Erstens gibt es .NET Rahmen und zum anderen sind es Sprachen ( C# , VB.NET usw.), die diesen Rahmen nutzen.

enter image description here

" System.String " alias "String" (großes "S") ist ein .NET Framework-Datentyp, während "string" ein C# Datentyp.

enter image description here

Kurz gesagt ist "String" ein Alias (dieselbe Sache mit verschiedenen Namen) von "string". Technisch gesehen werden also beide nachstehenden Code-Anweisungen die gleiche Ausgabe liefern.

String s = "I am String";

oder

string s = "I am String";

In gleicher Weise gibt es Aliase für andere C#-Datentypen, wie unten dargestellt:

Objekt: System.Object , Zeichenfolge: System.String , bool: System.Boolean , byte: System.Byte , sbyte: System.SByte , kurz: System.Int16 und so weiter.

Nun die Millionen-Dollar-Frage aus der Sicht des Programmierers: Wann sollte man "String" und "string" verwenden?

Um Verwirrung zu vermeiden, sollte man zunächst eine von ihnen konsequent nutzen. Aber aus der Perspektive der besten Praktiken ist es gut, bei der Variablendeklaration "String" (kleines "s") zu verwenden, und wenn Sie es als Klassennamen verwenden, ist "String" (großes "S") vorzuziehen.

Im folgenden Code ist die linke Seite eine Variablendeklaration, die mit "String" deklariert wird. Auf der rechten Seite rufen wir eine Methode auf, daher ist "String" sinnvoller.

string s = String.ToUpper() ;

223voto

Rasmus Faber Punkte 47181

C# ist eine Sprache, die zusammen mit der CLR verwendet wird.

string ist ein Typ in C#.

System.String ist ein Typ in der CLR.

Wenn Sie C# zusammen mit der CLR verwenden string wird abgebildet auf System.String .

Theoretisch könnte man einen C#-Compiler implementieren, der Java-Bytecode erzeugt. Eine sinnvolle Implementierung dieses Compilers würde wahrscheinlich string à java.lang.String um mit der Java-Laufzeitbibliothek zu interagieren.

200voto

urini Punkte 30897

Kleinschreibung string ist ein Alias für System.String . Sie sind identisch in C# .

Es gibt eine Debatte darüber, ob Sie die Systemtypen ( System.Int32 , System.String usw.) oder die Typen C# aliases ( int , string , etc). Ich persönlich glaube, dass Sie die C# aliases aber das ist nur meine persönliche Vorliebe.

179voto

Hallgrim Punkte 14653

string ist nur ein Alias für System.String . Der Compiler wird sie identisch behandeln.

Der einzige praktische Unterschied ist die von Ihnen erwähnte Syntaxhervorhebung und die Tatsache, dass Sie schreiben müssen using System wenn Sie String .

165voto

Pradeep Kumar Mishra Punkte 10679

Beide sind gleich. Aber aus Sicht der Kodierungsrichtlinien ist es besser, die string 代わりに String . Dies wird in der Regel von Entwicklern verwendet. z.B. statt Int32 wir verwenden int als int ist ein Alias für Int32

FYI "Das Schlüsselwort string ist einfach ein Alias für die vordefinierte Klasse System.String ." - C#-Sprachenspezifikation 4.2.3 http://msdn2.microsoft.com/En-US/library/aa691153.aspx

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X