11 Vote

C#/.NET: Différence entre String et string

Question de Invité | 12/01/2021 à 18:23

Lors de la programmation avec C#, il est possible de déclarer une string (chaîne) avec une écriture en minuscules et en majuscules:

string s = "ABC";
String S = "ABC";

Les deux méthodes semblent fonctionner de la même manière dans mon code. Par conséquent, je me demande s'il y a une différence entre les deux déclarations et sinon je me demande s'il existe alors deux types de chaînes différents disponibles. Dans quelle situation dois-je utiliser quelle variante?

RépondrePositifNégatif
1Meilleure Réponse1 Vote

En C#, "string" est un alias pour "System.String". Donc, techniquement, les deux déclarations sont en effet identiques, car en interne, "string" est défini comme "String".

Néanmoins, je recommande d'utiliser toujours la déclaration en minuscules lorsque vous avez besoin d'un objet string, par exemple:

string s = "ABC";

Cependant, si vous avez besoin d'une fonction de classe, vous devez utiliser la variante majuscule:

string a = "A";
string b = "B";
string c = "C";
string s = String.Concat(a, b, c);

Dans cet exemple, nous créons 3 objets string (a, b et c) en utilisant la string minuscule et nous utilisons la fonction de classe String.Concat avec la String majuscule afin de stocker le résultat dans l'objet s.

Un autre argument pour aller de cette façon est que "string" est une construction lexicale consciemment introduite comme une abstraction qui devrait être utilisée pour une string par défaut. En dehors de cela, "System.String" n'est qu'un type. Donc, si à tout moment dans le futur (peu probable) le type de string par défaut devait être changé, string ne serait plus la même que System.String et si vous avez déjà utilisé "string", vous seriez du bon côté car "string "serait remplacé par le nouveau type de string par défaut à ce moment et vous n'auriez pas à changer votre code.

À propos, la même chose s'applique également à int (= System.Int32), long (= System.Int6), bool (= System.Boolean), char (= System.Char), object (= System.Object) et de nombreux autres types.
12/01/2021 à 21:46

RépondrePositif Négatif
Répondre

Sujets Connexes

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.