В C / C # / и т.д. вы можете сказать компилятору , что буквальное число не то , что , как представляется, (то есть. float
Вместо double
, unsigned long
вместо того , чтобы int
:
var d = 1.0; // double
var f = 1.0f; // float
var u = 1UL; // unsigned long
и т.п.
Может ли кто-нибудь указать мне на список этих? Я специально ищу суффикс для short
или Int16
.
Ответы:
Я думаю, что это все ... нет литералов для коротких / ushort / byte / sbyte
источник
byte b = 42;
)somebyte = (byte)(somebool ? 1 : 0);
1l
и1L
оба будут рассматриваться как длинное целое число , но , безусловно ,1L
является более удобным для чтения , чем1l
.Из §2.4.4.2 целочисленных литералов :
А из §2.4.4.3 вещественные литералы :
источник
Если ваша переменная не короткая, вы должны привести ее явно:
источник
Там нет одного для краткости. Просто используйте
short s = 1;
.источник
short z1 = (0 == 1 ? 0 : 1);
Но это не так:short y = 1; short z2 = (0 == 1 ? 0 : y);
(извините, в комментариях не допускается разрывов строк)0
что ветвь if преобразуется вint
перед заданиемz2
. Если вы используете дваshort
s в своих ветках, результат снова будетshort
. С помощью if / else компилятор не может знать, что вашint
может быть представлен какshort
.