c#短/长/int文字格式?

在C / c# / etc。你可以告诉编译器字面数不是它看起来是什么(例如。, float代替doubleunsigned long代替int):

var d = 1.0;  // double
var f = 1.0f; // float
var u = 1UL;  // unsigned long

等。

谁能给我一份清单吗?我特别寻找shortInt16的后缀。

113644 次浏览
var d  = 1.0d;  // double
var d0 = 1.0;   // double
var d1 = 1e+3;  // double
var d2 = 1e-3;  // 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

我想就这些了……short/ushort/byte/sbyte没有文字说明符

没有简称。只需使用short s = 1;即可。

整型常量:

整型字面值的类型确定如下:

  • 如果字面值没有后缀,则它的值可以表示为以下类型中的第一种:intuintlongulong
  • 如果字面值的后缀是Uu,则它的值可以表示为以下类型中的第一种:uintulong
  • 如果字面值的后缀是Ll,则它的值可以表示为以下类型中的第一种:longulong
  • 如果字面值的后缀是ULUluLulLULulUlu,则类型为ulong

真正的文字:

如果没有指定实类型后缀,则实字面值的类型为双精度。否则,实类型后缀决定实字面值的类型,如下所示:

  • 后缀为Ff的实字面值类型为float。例如,字面量1f1.5f1e10f123.456F都是类型float
  • 后缀为Dd的实字面值类型为double。例如,字面量1d1.5d1e10d123.456D都是类型double
  • 后缀为Mm的实字面值类型为decimal。例如,字面量1m1.5m1e10m123.456M都是类型decimal。这个字面值通过取精确值转换为十进制值,如果需要,使用银行舍入法(第4.1.7节)舍入到最接近的可表示值。字面量中任何明显的刻度都将被保留,除非值是四舍五入或值为0(在后者的情况下,符号和刻度将为0)。因此,字面量2.900m将被解析为具有符号0、系数m0和刻度m1的小数。

如果你的变量不是short类型,你必须显式强制转换:

Object s = (Int16) 1;
var myValue = unchecked((short)0x7F00);

字面值是int,因此必须转换为目标类型。

.如果出现值溢出,则需要检查