2010-08-11 4 views
2

string Est-ce qu'un type de référence ou un type de valeur? Quelqu'un peut-il donner une description correspondante?Type de valeur de chaîne ou type de référence

+2

Un vote de clôture comme "Subjectif et Argumentatif"? Qu'est-ce qui est subjectif à propos de cette question, sérieusement? – Rob

+0

Comment est-ce "pas une vraie question", d'ailleurs? –

Répondre

8

string est un type de référence immuable. Ci-dessous un court exemple:

// All of these point to the same string in the heap 
string hello = "Hello World!"; // creates string 
string hello2 = "Hello World!"; // uses the previous string from the intern pool 
string hello3 = hello2; 

Si vous cherchez plus d'informations, consultez le poste de Jon Skeet:

C# in Depth: Strings in C# and .NET

3

System.String dans le cadre de .net est un type de référence, très bonne explication est celle de Jon Skeet: C# in Depth: Strings in C# and .NET. Les points clés de son article sont:

  • Il est un type de référence
  • Il est immuable
  • Il peut contenir des valeurs nulles
  • Il surchargent l'opérateur ==

Le dernier point est celui qui fait string se comporte comme un type de valeur à des moments que vous pouvez écrire:

string s1 = "value"; 
string s2 = "value"; 
// result will be true. 
bool result = (s1 == s2); 
+0

En fait, c'est un exemple malheureux - l'internalisation de chaîne rendrait cela même sans surcharger. –

+0

@Jon - J'avais oublié à ce sujet - Cantcha dire que c'était presque hometime! : S – Rob

0

Découvrez le chapitre Strings in C# and .NET de notre propre maître, John Skeet, de son livre 'C# in Depth'. Cela vous dit tout ce que vous devez savoir.

Questions connexes