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?

77voto

Michael Ray Lovett Punkte 5740

Ich komme zu spät zur Party: Ich verwende die CLR-Typen 100% der Zeit (nun, außer wenn gezwungen um den C#-Typ zu verwenden, aber ich weiß nicht mehr, wann das das letzte Mal war).

Ursprünglich habe ich damit schon vor Jahren begonnen, wie in den CLR-Büchern von Ritchie beschrieben. Es machte für mich Sinn, dass alle CLR-Sprachen letztendlich in der Lage sein müssen, die CLR-Typen zu unterstützen, so dass die Verwendung der CLR-Typen selbst für klareren und möglicherweise mehr "wiederverwendbaren" Code sorgt.

Jetzt, wo ich es seit Jahren mache, ist es zur Gewohnheit geworden, und ich mag die Färbung, die VS für die CLR-Typen anzeigt.

Der einzige wirkliche Wermutstropfen ist, dass die Autovervollständigung den C#-Typ verwendet, so dass ich am Ende die automatisch generierten Typen neu eingeben muss, um stattdessen den CLR-Typ anzugeben.

Außerdem sieht es jetzt, wenn ich "int" oder "string" sehe, wirklich falsch aus, als ob ich einen C-Code aus den 1970er Jahren vor mir hätte.

60voto

Oded Punkte 475566

Es gibt keinen Unterschied.

Das C#-Schlüsselwort string bildet auf den .NET-Typ System.String - es ist ein Alias, der die Namenskonventionen der Sprache einhält.

Ähnlich, int Karten zu System.Int32 .

53voto

user2771704 Punkte 5544

Zu diesem Thema gibt es ein Zitat von Daniel Solis' Buch .

Alle vordefinierten Typen werden direkt auf zugrunde liegenden .NET-Typen abgebildet. Die C#-Typnamen (String) sind einfach Aliasnamen für die .NET-Typen (String oder System.String), so dass die Verwendung der .NET-Namen syntaktisch einwandfrei funktioniert, obwohl davon abgeraten wird. Innerhalb eines C#-Programms sollten Sie die C#-Namen verwenden und nicht die .NET-Namen verwenden.

47voto

Neel Punkte 11407

String ist ein Schlüsselwort, und Sie können string nicht als Bezeichner verwenden.

Zeichenfolge ist kein Schlüsselwort und kann als Bezeichner verwendet werden:

Beispiel

string String = "I am a string";

Das Schlüsselwort string ist ein Alias für System.String abgesehen von der Frage des Schlüsselworts sind die beiden genau gleichwertig.

 typeof(string) == typeof(String) == typeof(System.String)

45voto

Coder Punkte 1753

Ja, das ist kein Unterschied zwischen ihnen, genau wie die bool et Boolean .

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