Frage

In C# gibt es String Gegenstände und string Objekte.

Was ist der Unterschied zwischen den beiden?Welche Best Practices sind zu verwenden?

War es hilfreich?

Lösung

Es gibt keinen Unterschied.string (Kleinbuchstaben) ist nur ein Alias ​​für System.String.

Andere Tipps

Kein Unterschied. System.String streng identisch mit string. Common C # Code-Richtlinien zeigt an, dass Sie das Schlüsselwort string verwenden soll.

Sie sind Aliase und sind austauschbar. Allerdings stilistisch, für Erklärungen, verwende ich die kleingeschriebene Zeichenkette, und für die statischen Methoden, verwende ich String.

string foo = "bar";

if( foo != String.Empty )
{
   Console.WriteLine(String.Format("foo.Length = {0}", foo.Length));
}

Einer ist System.String, der .Net-Typ, und einer ist spezifisch für C#, was sich als Alias ​​zurück zu System.String herausstellt.

http://msdn.microsoft.com/en-us/library/362314fe(VS.71).aspx

Es gibt keinen Unterschied. String ist ein Alias, dass der Compiler zu System.String umwandelt.

In der Tat ist es sogar in MSIL Alias:

.method private hidebysig static void  Main(string[] args) cil managed

Es gibt keinen Unterschied zwischen ihnen.string ist nur ein Alias ​​für System.String.Beim Kompilieren werden beide zum System.String-Objekt kompiliert.

Die Kleinbuchstabenversion ist lediglich ein Alias ​​für die eigentliche Klasse String.Es gibt keinen wirklichen Unterschied hinsichtlich der generierten IL.

Es gibt keinen Unterschied. String ist eine Sprache C # Schlüsselwort, das zu der Klasse System.String bezieht sich, so wie int ein Schlüsselwort, das zu System.Int32 bezieht.

In der Zukunft versuchen, eine App kompilieren, die beide verwenden und dann Reflektor verwenden (die Sprache IL ändern) die kompilierte Ausgabe anzuzeigen. Sie werden sehen, es gibt keinen Unterschied.

Es gibt keinen Unterschied, weil Zeichenfolge System.String vom Compiler umgewandelt wird. Das Gleiche gilt für alle gängigen Typen (int geht an System.Int32, etc). Wir verwenden die einfachen Namen, so dass sie abheben.

In Anbetracht, dass ein „int“ in einigen Sprachen unterscheiden je nach 16bit / 32bit-System, ein „string“ könnte in der Zukunft entwickelt nicht die gleichen wie System.String sein.

Aber jetzt ist es.

nur ein bisschen Anmerkung: String / String ist nicht das einzige Paar von Alias-Namen: z.B. Integer, Int32, int sind alle Aliase.

@mliesen. Es nicht in C # nicht passiert, ist es nicht C so, weil von C # erstellen Sie nicht ausführbar, sondern einen pro-kompilierten Code, wie Java

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top