string
ist ein Alias für global::System.String
. Das ist einfach nur syntaktischer Zucker. Die beiden sind genau in fast allen Fällen austauschbar, und der kompilierte Code wird keinen Unterschied aufweisen.
Ich persönlich verwende die Aliasnamen für Variablennamen usw., aber ich verwende die CLR-Typnamen für Namen in APIs, zum Beispiel:
public int ReadInt32() // Good, language-neutral
public int ReadInt() // Bad, assumes C# meaning of "int"
(Beachten Sie, dass der Rückgabetyp nicht wirklich ein Name ist - er ist in den Metadaten als Typ kodiert, so dass es hier keine Verwirrung gibt).
Die einzigen Orte, von denen ich weiß, dass der eine verwendet werden kann und der andere nicht (soweit ich weiß), sind:
nameof
verbietet die Verwendung von Pseudonymen
- Bei der Angabe eines zugrunde liegenden Enum-Basistyps, sólo die Aliasnamen können verwendet werden
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/