2010-11-16 10 views
7

Mögliche Duplizieren:
In C# what is the difference between String and stringString oder String

, was der Unterschied zwischen dem String und String ist. In C#, welches ist bevorzugt?

+0

@Ani: Nicht "möglicherweise", sondern " definitiv. " – jason

+0

@Jason: Das ist das Boilerplate Text, der auftaucht, wenn ich "als genaues Duplikat schließen" auswähle. Kann ich das ändern? – Ani

+0

@Ani: Ich war mir nicht bewusst, dass es eine solche Funktion gibt. Ist das neu? – jason

Antwort

1

string ist nur ein Alias ​​für String - sie sind die gleichen

edit: Typ

Fest
+4

Ich denke du hast das tatsächlich rückwärts. –

+1

Ich denke, es ist anders herum. Wie 'int' ist ein Alias ​​für' Int32' – Phil

1

string ist eine C# -spezifische Schlüsselwort, das das gleiche wie das System.String Art bedeutet. Bevorzugen Sie die Sprachschlüsselwörter, wenn möglich, verwenden Sie z. string, int, float, anstelle von System.String, System.Int32, System.Single.

+0

warum der Vorzugsteil? – andy

+0

Abgesehen von der Tatsache, dass es ein * viel * sauberer aussieht, ist dies die Richtlinie in den meisten Open-Source-Projekten und ist der Stil MS in ihrer Dokumentation verwendet. – cdhowie

+0

float == Einzel? Ich wusste nicht, dass ... ich denke, es ist ein halbes Double, also macht das Sinn ... immer noch ein lustiger Name. – mpen

2

Sie sind das gleiche, String ist ein Alias ​​für String.

Ich neige dazu, String zu verwenden, wenn statische Methoden aufrufen (dh String.Format (...) oder String.IsNullOrEmpty (...). Ich weiß nicht, warum, weiß ich einfach.

+1

Ich mache dasselbe, wahrscheinlich, weil es sich falsch anfühlt, eine statische Methode für etwas aufzurufen, das nicht wie eine Klasse aussieht. – Phil

+0

Haha, ja, vielleicht ist es das. Ich bevorzuge blaugrün zu blau. –

+0

Es macht Sinn ... wenn Sie es wie eine Klasse verwenden, möchten Sie, dass es wie eine Klasse aussieht. – mpen

5

Eigentlich string ist ein Alias ​​für System.String aber erash ist im Grunde richtig ...

Hier ist eine Liste von anderen alias' ist schamlos von Jon Skeet hob in this post:

* object: System.Object 
* string: System.String 
* bool: System.Boolean 
* byte: System.Byte 
* sbyte: System.SByte 
* short: System.Int16 
* ushort: System.UInt16 
* int: System.Int32 
* uint: System.UInt32 
* long: System.Int64 
* ulong: System.UInt64 
* float: System.Single 
* double: System.Double 
* decimal: System.Decimal 
* char: System.Char