C#.Net chaîne insensible à la casse

pourquoi C#.Net permettre que la déclaration de l'objet string soit insensible à la casse?

String sHello = "Hello";
string sHello = "Hello";

les minuscules et les majuscules de la chaîne de mots sont acceptables et cela semble être le seul objet qui permette cela.

quelqu'un Peut-il expliquer pourquoi?

7
demandé sur edtheprogrammerguy 2008-08-13 16:53:20

7 réponses

string est un mot-clé de langue tandis que System.String est le type qu'il aliase.

les deux compilent exactement la même chose, de même:

  • int est System.Int32
  • long est System.Int64
  • float est System.Single
  • double est System.Double
  • char est System.Char
  • byte est System.Byte
  • short est System.Int16
  • ushort est System.UInt16
  • uint is System.UInt32
  • ulong est System.UInt64

je pense que dans la plupart des cas, il s'agit de lisibilité du code - tous les types de valeurs de base du système ont des alias, je pense que le cas inférieur string pourrait être juste pour la cohérence.

21
répondu Keith 2011-09-13 14:30:35

suite aux autres réponses, il est de bonne pratique d'utiliser des mots clés s'ils existent.

E. G. vous devez utiliser string plutôt que système.Chaîne .

6
répondu Iain Holder 2008-08-13 13:50:08

"Chaîne" est le nom de la classe. "string" est un mot-clé qui correspond à cette classe.

c'est la même chose que

  • Int32 = > int
  • décimal = > décimal
  • Int64 = > long

... et ainsi de suite...

2
répondu lubos hasko 2008-08-13 12:55:14

"chaîne" est un mot clé C#. c'est juste un alias pour "le Système de.String " - l'une des classes .NET BCL.

1
répondu aku 2008-08-13 12:57:26

"chaîne" est juste un alias C# pour la classe "String" dans le Système de l'espace de noms.

1
répondu Patrik Svensson 2008-08-13 12:58:46

string est un alias pour System.Chaîne. Ils sont la même chose.

par convention, cependant, les objets de type (Système.String) sont généralement appelés alias-par exemple

string myString = "Hello";

alors que les opérations sur la classe utilisent la version en majuscules par exemple

String.IsNullOrEmpty(myStringVariable);
0
répondu ZombieSheep 2008-08-13 12:56:39

J'utilise la corde et non la corde, Int32 au lieu de int, de sorte que ma coloration syntaxique ramasse sur une chaîne comme un Type et non un mot-clé. Je veux que les mots clés me sautent dessus.

0
répondu Brian Leahy 2008-08-13 18:59:36