2012-12-16 6 views
6

In C# haben wir .Net-Klasse und die kurzen Namen, wie Double und Double. Mir wurde schon vor einiger Zeit vorgeschlagen, dass wir immer den Kurznamen verwenden werden, wollte wissen warum. Ich weiß, dass sie beide gleich sind, aber warum man manchmal gegenüber anderen bevorzugt wird? Einfach Lesbarkeit oder ist da noch etwas dran?Best Practices: Was ist zu verwenden, .Net-Klasse oder Kurzname?

Zum Beispiel, wenn ich eine Klasse erschaffe einen String und eine boolean Eigenschaft, welche der folgenden verwendet immer werden sollen, und wenn die andere verwendet werden sollen:

Class MyClass { 
    ... 
    private String x; 
    private Boolean y; 
    ... 
} 

ODER

Class MyClass { 
    ... 
    private string x; 
    private bool y; 
    ... 
} 
+0

Doppel und Doppel sind nicht ganz gleich ... – Styxxy

+2

@Styxxy: Falsch. Dies ist C#, nicht Java. – SLaks

+2

Ow, verpasste das :). – Styxxy

Antwort

5

Kurz gesagt: Mach es wie du willst.

Ich würde es vorziehen, den Alias ​​jedes Mal zu verwenden, wenn ich kann.

Verwenden Sie Int32 anstelle von int, wenn Sie verschiedene Ints in Ihrem Code haben. Wie Mischen Int32, Int64 oder Int16.

+0

Richter sagt, dass die Verwendung von echten Namen für Leute, die viele Sprachen (nicht nur C#) verwenden, klarer ist. Und ich denke, er hat Recht. –

+0

Ja natürlich, aber stellen Sie sich vor, Sie haben einen Code-Block, in dem Sie gemischte 'short',' int', 'long' usw. verwenden. Es wäre einfacher zu verstehen mit' Int16', 'Int32' und' Int64' –

+1

So ? Ich habe das gleiche gesagt - mit echten Namen (keine Aliase). –

3

Nun, sie sind die gleichen. Nach dem Kompilieren zu CLR zeigen beide auf denselben Datentyp.

3

Sie können Int32 oder int in Ihrem Code verwenden, aber Sie sollten es auf eine bequeme Weise verwenden, sollten Sie beide nicht verwenden, kann es den Code unlesbar machen, aber C# -Konventionen sagen, dass Sie immer Synonyme verwenden sollten .

Einige Male, Sie können gleich zwischen "Wrapper Classes" sind diejenigen, in Java, und "Nullable Types" in .net oder "Type Synonyms von C#"

In C# "int" und "Int32" sind mischen "bool" und "Boolean" sind gleich, "string" und "String" sind gleich, aber "int" ist auch in C# Sprache der "System.Int32" Klasse von .Net.

Sie können verwenden "int?" oder Nullable <int>, damit die Variable den Wert "null" annimmt, aber in Java sollten Sie die Wrapper-Klasse Integer anstelle der Ganzzahl verwenden, um Null-Werte zu halten.

3

Das ganz von Ihnen abhängt. Für einige ist Lesbarkeit wichtiger. Verwenden Sie also die, die für Sie lesbarer und praktischer ist.

Aliase werden nur wegen ihrer Bequemlichkeit verwendet, aber sie sind die gleichen wie die tatsächlichen für Compiler.

3

Zeichenfolge ist ein Alias ​​für System.String, Bool ist ein Alias ​​für System.Boolean und so weiter. Die Schlüsselwörter vom Typ C# und ihre Aliase sind austauschbar.

Ich persönlich bevorzuge die Verwendung von Aliasen, es sei denn, ich muss den expliziten Typ hervorheben, falls diese Informationen in der Zukunft benötigt werden. Wie zum Beispiel die Verwendung von System.Int32, wenn int zu explizit zeigen, dass es eine Einschränkung gibt, auch wenn sie genau gleich sind.

3

Sie sollten den Klassennamen verwenden, wenn Sie auf statische Methoden und Kurznamen zugreifen müssen, wenn Sie eine Variable/ein Feld des angegebenen Typs deklarieren.

int i = 0; 
Int32.TryParse(s, out i); 

einem der Microsoft Codebeispiele Siehe http://msdn.microsoft.com/en-us/library/system.int32.aspx

Es gibt keinen Unterschied in kompilierten Code ist es eine andere Art und Weise zu tun. Es ist einfach sauberer und lesbarer.

+0

Wo haben Sie diese Konvention von C# gesehen? –

+0

@MSakherSawan das ist das Format, das MS normalerweise in ihrem Beispielcode verwendet. –

+1

Sie können Recht haben, aber ich kann Ihnen viele Microsoft-Beispiele mit int.TryParse anstelle von Int32.TryParse zeigen, aber es scheint, dass es keine Konvention dafür gibt. –