In C#, int
y Int32
sind das Gleiche, aber ich habe schon mehrmals gelesen, dass int
ist vorzuziehen gegenüber Int32
ohne Angabe von Gründen. Gibt es einen Grund, und sollte mich das interessieren?
Antworten
Zu viele Anzeigen?Vor einiger Zeit arbeitete ich an einem Projekt mit Microsoft, als wir Besuch von jemandem aus dem Microsoft .NET CLR Produktteam bekamen. Diese Person kodierte Beispiele, und als er seine Variablen definierte, verwendete er "Int32" im Gegensatz zu "int" und "String" im Gegensatz zu "string".
Ich hatte mich daran erinnert, diesen Stil in einem anderen Beispielcode von Microsoft gesehen zu haben. Ich habe also etwas recherchiert und festgestellt, dass alle sagen, dass es keinen Unterschied zwischen "Int32" und "int" gibt, außer bei der Syntaxfärbung. Tatsächlich fand ich eine Menge Material, in dem empfohlen wird, "Int32" zu verwenden, um den Code lesbarer zu machen. Also habe ich diesen Stil übernommen.
Neulich habe ich tatsächlich einen Unterschied festgestellt! Der Compiler erlaubt es nicht, enum mit "Int32" zu schreiben, aber er tut es, wenn man "int" verwendet. Fragen Sie mich nicht, warum, denn ich weiß es noch nicht.
Ejemplo:
public enum MyEnum : Int32
{
AEnum = 0
}
Das funktioniert.
public enum MyEnum : int
{
AEnum = 0
}
Entnommen aus: Int32-Schreibweise vs. int
Berücksichtigen Sie auch Int16. Wenn Sie in Ihrer Anwendung einen Integer-Wert im Speicher speichern müssen und Sie sich über die Menge des verwendeten Speichers Gedanken machen, dann könnten Sie Int16 wählen, da es weniger Speicherplatz benötigt und einen kleineren Min/Max-Bereich hat als Int32 (was int ist).
Die Verwendung des Int32
Typ erfordert einen Namespace-Verweis auf System
oder voll qualifizierend ( System.Int32
). Ich tendiere zu int
weil es keinen Namespace-Import erfordert, wodurch die Gefahr von Namespace-Kollisionen in einigen Fällen verringert wird. Bei der Kompilierung nach IL gibt es keinen Unterschied zwischen den beiden.
In den meisten Programmiersprachen sollte das keine Rolle spielen, es sei denn, Sie müssen sehr spezifische mathematische Funktionen schreiben oder Code, der für eine bestimmte Architektur optimiert ist... Stellen Sie einfach sicher, dass die Größe des Typs für Sie ausreichend ist (verwenden Sie etwas Größeres als einen Int, wenn Sie wissen Sie benötigen beispielsweise mehr als 32 Bits)