2010-11-20 9 views
0

Mögliche Duplizieren:
In C#, why is String a reference type that behaves like a value type?String ist ein Klasse-warum

Warum in Zeichenfolge C# eine Klasse/ref Typ ist, wo als int/double Wert/irgendeine spezifische struct- Grund oder ist es durch Entwurf

+3

Das ist ein Duplikat von [In C#, warum ist String ein Referenztyp, der sich wie ein Werttyp verhält?] (Http://stackoverflow.com/questions/636932/in-c-why-is-string-a- reference-type-verhält sich-wie-ein-Wert-Typ). Kurze Antwort: Wir möchten, dass es ein Werttyp ist, aber es muss auf dem Heap zugewiesen werden, da seine Größe sehr groß sein kann. –

Antwort

0

Integrale Typen haben die wichtige Eigenschaft, als Ganzes vom Prozessor in einem Zug zugänglich zu sein. Dies ist nicht der Fall für eine Zeichenfolge, die aus Tausenden von Bytes bestehen kann. Daher wurde in allen Sprachen immer auf Strings verwiesen, weil der Computer dies nicht anders kann.
In einer Objektsprache wie C# ist es üblich, eine Klasse zu erstellen, die auf einen Speicherort verweist: Genau darum geht es bei einem Objekt.

Also ja, Zeichenfolgen sind Klassen, weil sie keine integralen Typen sein können.