C# 数值类型是 C# 中最常用的数据类型,它们可以表示整数、浮点数、布尔值、字符串等。C# 数值类型可以分为内置数据类型(如 int、float 等)和用户自定义的数据类型(如 struct、enum 等)。
C# 中的内置数据类型包括 int、float、double 和 decimal 等。int 类型是一个 32 位有符号整形,它可以表达从 -2147483648 到 2147483647 之间的所有整数。float 类型是一个 32 位单精度浮点数,它可以表达 -3.402823E+38 到 3.402823E+38 之间的所有浮点数。double 类型是一个 64 位双精度浮点数,它可以表达 -1.79769313486232E+308 到 1.79769313486232E+308 之间的所有浮点数。decimal 类型是一个 128 位十进制浮动小树,它可以表达 -79228162514264337593543950335 到 79228162514264337593543950335 之间的所有十进制数。
C# 还支持用户自定义的复合数据类型,如 struct、enum 等。struct 是一个用户自定义的复合对象,其中包含了多个字段或者方法。struct 非常适合用来表达多个不同字段之间关联性很强的对象。enum 是一个用户自定义的常量集合,其中包含了多个常量项目。enum 非常适合用来表达特定领域内固定不变的几项选项集合。
public enum Color { Red, Green, Blue }
8位和16位整数类型为byte,sbyte,short和ushort。
C#根据需要将它们隐式转换为更大的类型。
当尝试将结果分配回小的整数类型时,可能会导致编译时错误:
short x = 1, y = 1; short z = x + y; // Compile-time error
x
和 y
隐式转换为 int
,以便可以执行加法。
结果也是一个int
,不能隐式转换为短。
为了使这个编译,我们必须添加一个显式转换:
short z = (short) (x + y);
浮点类型具有特定操作对待的值。
这些特殊值是NaN(非数字),+无穷大,-Infinity和-0。
例如:
Console.WriteLine (double.NegativeInfinity); // -Infinity
表示double和float的特殊值的常量如下:
特殊值 | 双常量 | 浮点常量 |
---|---|---|
NaN | double.NaN | float.NaN |
+infinity | double.PositiveInfinity | float.PositiveInfinity |
-infinity | double.NegativeInfinity | float.NegativeInfinity |
-0 | -0.0 | -0.0f |
将非零数除以零会导致无限值。例如:
Console.WriteLine ( 1.0 / 0.0); // Infinity
Console.WriteLine (-1.0 / 0.0); // -Infinity
Console.WriteLine ( 1.0 / -0.0); // -Infinity
Console.WriteLine (-1.0 / -0.0); // Infinity
将零除零,或从无穷大中减去无穷大,得到NaN。例如:
Console.WriteLine ( 0.0 / 0.0); // NaN
Console.WriteLine ((1.0 / 0.0) - (1.0 / 0.0)); // NaN
当使用==,NaN值永远不等于另一个值,甚至另一个NaN值:
Console.WriteLine (0.0 / 0.0 == double.NaN); // False
要测试值是否为NaN,必须使用float.IsNaN或double.IsNaN方法:
Console.WriteLine (double.IsNaN (0.0 / 0.0)); // True
但是,当使用object.Equals时,两个NaN值相等:
Console.WriteLine (object.Equals (0.0 / 0.0, double.NaN)); // True
double
可用于科学计算。decimal
对于财务计算很有用。
C#异常using语句许多类封装了非托管资源。这些类实现 System.IDisposable ,它定义了一个名为Dispose的单一无参数方法来清理这...
C# 通用委托委托类型可以包含通用类型参数。例如:public delegate T ConverterT (T arg);有了这个定义,我们可以编写一个适用于...