In C / C # / usw. können Sie den Compiler sagen , dass eine wörtliche Zahl ist nicht das, was es zu sein scheint (dh. float
Statt double
, unsigned long
statt int
:
var d = 1.0; // double
var f = 1.0f; // float
var u = 1UL; // unsigned long
etc.
Könnte mich jemand auf eine Liste von diesen verweisen? Ich suche speziell nach einem Suffix für short
oder Int16
.
Antworten:
Ich denke, das ist alles ... es gibt keine wörtlichen Bezeichner für short / ushort / byte / sbyte
quelle
byte b = 42;
)somebyte = (byte)(somebool ? 1 : 0);
1l
und1L
beide als lange Ganzzahl behandelt werden, aber sicherlich1L
besser lesbar sind als1l
.Aus §2.4.4.2 Ganzzahlige Literale :
Und aus §2.4.4.3 Echte Literale :
quelle
Wenn Ihre Variable noch nicht kurz ist, müssen Sie sie explizit umwandeln:
quelle
Es gibt keinen für kurze. Einfach benutzen
short s = 1;
.quelle
short z1 = (0 == 1 ? 0 : 1);
Aber das nicht:short y = 1; short z2 = (0 == 1 ? 0 : y);
(Entschuldigung, keine Zeilenumbrüche in Kommentaren erlaubt)0
in der if-Verzweigung in eineint
vor der Zuweisung zu konvertiert wirdz2
. Wenn Sie zweishort
s in Ihren Zweigen verwenden, ist das Ergebnis wieder ashort
. Mit dem if / else kann der Compiler nicht wissen, dass Ihrint
als dargestellt werden kannshort
.