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?

289voto

James Sutherland Punkte 797

Diese beiden Begriffe sind in der Tat synonym; int wird ein wenig vertrauter aussehen, Int32 macht die 32-Bitigkeit für diejenigen, die Ihren Code lesen, deutlicher. Ich wäre geneigt, Folgendes zu verwenden int wo ich nur 'eine ganze Zahl' brauche, Int32 wo die Größe wichtig ist (kryptographischer Code, Strukturen), so dass zukünftige Betreuer wissen, dass es sicher ist, eine int wenn es angebracht ist, sollte aber darauf geachtet werden, dass Int32 s auf die gleiche Weise.

Der resultierende Code ist identisch: der Unterschied ist lediglich eine Frage der Lesbarkeit oder des Aussehens des Codes.

151voto

HasaniH Punkte 7873

ECMA-334 :2006 Spezifikation der C#-Sprache (p18):

Jeder der vordefinierten Typen ist eine Kurzform für einen vom System bereitgestellten Typ. Zum Beispiel ist das Schlüsselwort int verweist auf die Struktur System.Int32 . Aus stilistischen Gründen wird die Verwendung des Schlüsselworts der Verwendung des vollständigen Systemtypnamens vorgezogen.

93voto

raven Punkte 17587

Beide deklarieren 32-Bit-Ganzzahlen, und wie bereits von anderen Postern erwähnt, ist es hauptsächlich eine Frage des syntaktischen Stils, welche man verwendet. Allerdings verhalten sie sich nicht immer auf die gleiche Weise. Zum Beispiel wird der C#-Compiler dies nicht zulassen:

public enum MyEnum : Int32
{
    member1 = 0
}

aber es wird dies erlauben:

public enum MyEnum : int
{
    member1 = 0
}

Stellen Sie sich das mal vor.

52voto

Remi Despres-Smyth Punkte 4003

Ich verwende immer die Systemtypen - z. B., Int32 anstelle von int . Ich habe diese Praxis übernommen, nachdem ich gelesen hatte Angewandte .NET Framework-Programmierung - gibt der Autor Jeffrey Richter gute Argumente für die Verwendung der vollständigen Typennamen. Hier sind die beiden Punkte, die bei mir hängen geblieben sind:

  1. Typnamen können in verschiedenen .NET-Sprachen unterschiedlich sein. Zum Beispiel, in C#, long wird in C++ mit verwalteten Erweiterungen auf System.Int64 abgebildet, long bildet auf Int32 ab. Da die Sprachen bei der Verwendung von .NET gemischt werden können, können Sie sicher sein, dass die Verwendung des expliziten Klassennamens immer klarer ist, unabhängig von der bevorzugten Sprache des Lesers.

  2. Viele Framework-Methoden haben Typnamen als Teil ihrer Methodennamen:

    BinaryReader br = new BinaryReader( /* ... */ );
    float val = br.ReadSingle();     // OK, but it looks a little odd...
    Single val = br.ReadSingle();    // OK, and is easier to read

22voto

Brownie Punkte 7648

Int ist ein C#-Schlüsselwort und ist eindeutig.

Die meiste Zeit spielt es keine Rolle, aber es gibt zwei Dinge, die gegen Int32 sprechen:

  • Sie benötigen eine "using System;"-Anweisung. Die Verwendung von "int" erfordert keine using-Anweisung.
  • Es ist möglich, eine eigene Klasse namens Int32 zu definieren (was albern und verwirrend wäre). int bedeutet immer int.

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