10 Stimmen

Welchen int-Typ verwendet var standardmäßig?

Möglicher Duplikat:
C# short/long/int literal format?

Lesen über die Verwendung von var in der Programmierung, frage ich mich, zu was var standardmäßig wird, wenn es für den Typ int verwendet wird. Zum Beispiel, wenn ich

var foo = 65535

verwende, wird der Typ ushort oder einfach nur int sein? Danke.

28voto

AakashM Punkte 60642

Wirklich, was du fragst ist Welcher Typ wird ganzen Zahlen in C# zugewiesen?, auf die Antwort kann in der Spezifikation gefunden werden:

(Abschnitt 2.4.4.2 der Spezifikation 4.0)

Der Typ einer ganzen Zahl wird wie folgt bestimmt:

  • Wenn die Zahl kein Suffix hat, wird der erste dieser Typen verwendet, in dem ihr Wert dargestellt werden kann: int, uint, long, ulong.
  • Wenn die Zahl mit U oder u versehen ist, wird der erste dieser Typen verwendet, in dem ihr Wert dargestellt werden kann: uint, ulong.
  • Wenn die Zahl mit L oder l versehen ist, wird der erste dieser Typen verwendet, in dem ihr Wert dargestellt werden kann: long, ulong.
  • Wenn die Zahl mit UL, Ul, uL, ul, LU, Lu, lU, oder lu versehen ist, ist sie vom Typ ulong.

Wenn der Wert, der durch eine ganze Zahl repräsentiert wird, außerhalb des Bereichs des ulong Typs liegt, tritt ein Kompilierungsfehler auf.

6voto

Sergey Kalinichenko Punkte 694383

Alle ganzzahligen Literale sind vom Typ int, daher wird deine Variable int sein, es sei denn du castest oder am Ende einen expliziten Typqualifikator hinzufügst:

var quick = 65535;         // int
var brown = (ushort)65535; // ushort
var fox = 65535L;          // long

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