C#短/长/整型文字格式?
在C / C#/等你可以告诉编译器,一个文字数字是不是看起来是(即, float而不是double , unsigned long而不是int :
var d = 1.0; // double var f = 1.0f; // float var u = 1UL; // unsigned long
等等
有人可以指出我的名单吗? 我正在寻找一个short的后缀或Int16 。
var d = 1.0d; // double var f = 1.0f; // float var m = 1.0m; // decimal var i = 1; // int var ui = 1U; // uint var ul = 1UL; // ulong var l = 1L; // long
我认为这就是…短/ ushort / byte / sbyte没有字面说明符
来自§2.4.4.2整数文字 :
整数文字的types如下确定:
- 如果文字没有后缀,那么它的第一个types的值可以表示为:
int,uint,long,ulong。- 如果该字面量以
U或u作为后缀,则具有可以表示其值的第一个types:uint,ulong。- 如果文字后缀为
L或l,则它具有可以表示其值的第一个types:long,ulong。- 如果文字后缀为
UL,UL,UL,ul,LU,LU,lU或LU,则为ulongtypes。
而从§2.4.4.3真正的文字 :
如果没有指定真正的types后缀,那么真正的文字types是双重的。 否则,实际types后缀将决定实际文字的types,如下所示:
- 以
F或f为后缀的真正文字是floattypes。 例如,文字1f,1.5f,1e10f和123.456F都是floattypes。- 以
D或d为后缀的真正文字是doubletypes的。 例如,文字1d,1.5d,1e10d和123.456D都是doubletypes的。- 以
M或m为后缀的真正文字是decimal的types。 例如,文字1m,1.5m,1e10m和123.456M都是decimal。 这个字面值通过确切的值被转换成十进制值,如果需要的话,用银行家的四舍五入将其舍入到最接近的可表示值(4.1.7节)。 除非值被舍入或者值为零(在后一种情况下,符号和比例将为0),否则在文字中明显的任何比例被保留。 因此,文字2.900m将被parsing为符号0,系数2900和尺度3的小数。
如果你的variables不是一个简短的,你必须明确地转换它:
Object s = (Int16) 1;
没有一个简短的。 只用short s = 1; 。
如果你想避免经常使用short.Parse("1")产生警告的types转换, short.Parse("1")也可能是一个select。