376 Stimmen

Soll ich int oder Int32 verwenden?

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?

0voto

bovium Punkte 2789

Die Verwendung von Int oder Int32 ist gleich Int ist nur Zucker, um den Code für den Leser zu vereinfachen.

Verwenden Sie die Nullable-Variante Int? oder Int32?, wenn Sie mit Datenbanken arbeiten, die Felder mit Null enthalten. Das erspart Ihnen eine Menge Laufzeitprobleme.

0voto

Schmuli Punkte 733

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

0voto

Chris Pietschmann Punkte 28906

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).

0voto

Michael Meadows Punkte 26846

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.

0voto

Stacker Punkte 111

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)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X