Objekt , int , lang et bool wurden bereitgestellt als Stützräder für Ingenieure, die Schwierigkeiten hatten, sich an den Gedanken zu gewöhnen, dass die Datentypen nicht ein fester Bestandteil der Sprache sind. Im Gegensatz zu den Vorgängersprachen gibt es in C# keine Begrenzung für die Anzahl der Datentypen, die Sie hinzufügen können. Die 'System'-Bibliothek bietet ein Starterkit mit so nützlichen Typen wie System.Int32 , System.Boolean , System.Double , System.DateTime usw., aber die Ingenieure werden ermutigt, ihre eigenen hinzuzufügen. Da Microsoft an einer schnellen Akzeptanz seiner neuen Sprache interessiert war, hat es Aliase bereitgestellt, die den Anschein erwecken, als sei die Sprache eher "C"-ähnlich, aber diese Aliase sind eine völlig überflüssige Funktion (C# wäre eine ebenso gute Sprache, wenn man alle eingebauten Aliase entfernen würde, wahrscheinlich sogar besser).
StyleCop erzwingt zwar die Verwendung von Aliasen im alten C-Stil, aber das ist ein Makel in einem ansonsten logischen Regelwerk. Bis jetzt habe ich noch keine einzige Rechtfertigung für diese Regel (SA1121) gehört, die nicht auf einem Dogma beruht. Wenn Sie SA1121 für logisch halten, warum gibt es dann keinen buildin type für datetime ?
5 Stimmen
Ich mache es folgendermaßen: Ich verwende int oder string im Kontext einer primitiven Variablen (z.B. int x = 0) und verwende Int32 und String usw. im Kontext von Klassen (z.B. Int32.Parse oder String.Empty) - macht aber keinen Unterschied, am Ende wird es zum gleichen CLR-Typ kompiliert.
2 Stimmen
Warum veröffentlichen Sie das nicht als Antwort?
1 Stimmen
Dies ist eine ähnliche Frage wie diese. stackoverflow.com/questions/981434/