Dans le .NET Framework, au moins dans le langage C #, nous avons deux "versions" du type chaîne:
- "chaîne"
- "Chaîne"
Il semble qu'ils soient interchangeables, mais le sont-ils vraiment? S'ils ne sont pas interchangeables, est-il généralement préférable d'utiliser l'un au lieu de l'autre et dans quelles circonstances?
string
n'existe pas en.net
, il n'existe qu'en C #.Réponses:
Eh bien selon le MSDN
Où "String" est en fait
System.String
.Je dirais qu'ils sont interchangeables et qu'il n'y a pas de différence quand et où vous devez utiliser l'un ou l'autre.
Il serait préférable d'être cohérent avec celui que vous avez utilisé.
la source
String
(et doncstring
par alias) sont des types de référence.Comme indiqué, ils sont la même chose et ne
string
sont qu'un aliasString
.Pour ce que ça vaut, j'utilise
string
pour déclarer des types - variables, propriétés, valeurs de retour et paramètres. Ceci est cohérent avec l'utilisation d'autres types de système -int
,bool
,var
etc (bienInt32
etBoolean
sont également correctes).J'utilise
String
lorsque j'utilise les méthodes statiques sur la classe String, commeString.Split()
ouString.IsNullOrEmpty()
. Je pense que cela a plus de sens car les méthodes appartiennent à une classe et cela est cohérent avec la façon dont j'utilise d'autres méthodes statiques.la source
Je suggère d'utiliser des minuscules
string
. Les majusculesString
utiliseront la première classe nommée String qu'elle trouve dans les espaces de noms importés ... ce qui est généralementSystem.String
. Il est possible que votre propre classe String soit utilisée à la place.la source
String
en travaillant, il n'est jamais possible de tromperstring
.string
.string
est un mot clé C # qui est simplement un alias pour leSystem.String
..mais comme c'est un mot-clé, votre éditeur de coloration syntaxique / IDE l'affichera en couleur de mot-clé, comme int, double, if, else, etc. Stylistiquement, vous préférerez peut-être utiliser le mot-clé plutôt que le
System.String
type (ou justeString
après vous avez faitusing System;
).Ceci est un point de niche si, comme bien
bool
,char
,int
,double
etstring
sont tous les alias de mots clés pour les types de système,string
est une étrange-un comme il est un type de référence et les autres sont des types de valeur.la source
object
est aussi un alias de mot-clé pour un type de référencestring
n'est qu'un aliasString
, ils sont finalement les mêmes.Vous pouvez utiliser celui que vous préférez, bien que je l' utilise généralement
string
quand je prévois de l'utiliser un peu comme un type de données primitive (similaire àint
,float
oubool
) etString
quand je suis la planification de l'utiliser comme un objet / classe. Par exemple:Dans le cas ci-dessus, je prévois d'utiliser
foo
simplement pour stocker du texte (efficacement en tant que primitif), donc j'utilisestring
; cependant, quand j'appelleString.isNullOrWhitespace(string)
j'utiliseString
. Je le fais, car généralement la première lettre des noms de classe est en majuscule (String
) tandis que la première lettre des primitives (commeint
) ne le sont pas.la source
La chaîne est utilisée avec l'espace de noms System.String, la chaîne est utilisée pour la spécification du compilateur C #, de plus System.String est la valeur du type de référence. Vous êtes préférable de traiter les objets système, chaîne uniquement à des fins littérales. Le système et le système fonctionnent tous les deux de la même manière.
La chaîne est également utilisée à des fins de comparaison, d'égalité et à d'autres fins.
la source