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?

1voto

Ich verwende int für den Fall, dass Microsoft die Standardimplementierung für eine ganze Zahl in eine neuartige Version (nennen wir sie Int32b) ändert.

Microsoft kann dann den int-Alias in Int32b ändern, und ich muss nichts an meinem Code ändern, um die Vorteile ihrer neuen (und hoffentlich verbesserten) Integer-Implementierung zu nutzen.

Dasselbe gilt für alle Schlüsselwörter des Typs.

1voto

Jim T Punkte 12090

int ist ein Alias für System.Int32 wie in dieser Tabelle definiert: Tabelle der eingebauten Typen (C#-Referenz)

0voto

Selim Punkte 53

Laut dem Immediate Window in Visual Studio 2012 ist Int32 int, Int64 ist long. Hier ist die Ausgabe:

sizeof(int)
4
sizeof(Int32)
4
sizeof(Int64)
8
Int32
int
    base {System.ValueType}: System.ValueType
    MaxValue: 2147483647
    MinValue: -2147483648
Int64
long
    base {System.ValueType}: System.ValueType
    MaxValue: 9223372036854775807
    MinValue: -9223372036854775808
int
int
    base {System.ValueType}: System.ValueType
    MaxValue: 2147483647
    MinValue: -2147483648

0voto

Keith Punkte 141163

Das spielt keine Rolle. int ist das Schlüsselwort der Sprache und Int32 der eigentliche Systemtyp.

Siehe auch meine hier antworten zu einer verwandten Frage.

0voto

user11211 Punkte 1187

Einige Compiler haben unterschiedliche Größen für int auf verschiedenen Plattformen (nicht C#-spezifisch)

Einige Kodierungsstandards (MISRA C) verlangen, dass alle verwendeten Typen in der Größe angegeben werden (d.h. Int32 und nicht int).

Es ist auch sinnvoll, Präfixe für Variablen unterschiedlichen Typs anzugeben (z. B. b für 8-Bit-Byte, w für 16-Bit-Wort und l für 32-Bit-Langwort => Int32 lMyVariable)

Sie sollten sich darum kümmern, weil Ihr Code dadurch portabler und besser wartbar wird.

Portable ist möglicherweise nicht auf C# anwendbar, wenn Sie immer C# verwenden werden und die C#-Spezifikation sich in dieser Hinsicht nie ändern wird.

Maintainable ihmo wird immer anwendbar sein, weil die Person, die Ihren Code pflegt, diese spezielle C#-Spezifikation möglicherweise nicht kennt und einen Fehler übersieht, bei dem der int gelegentlich mehr als 2147483647 wird.

In einer einfachen for-Schleife, die z. B. die Monate des Jahres zählt, ist das egal, aber wenn Sie die Variable in einem Kontext verwenden, in dem sie möglicherweise überlaufen könnte, sollten Sie darauf achten.

Sie sollten auch darauf achten, ob Sie bitweise Operationen damit durchführen wollen.

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