值类型
列出 C# 中的值类型:
1) bool, System.Boolean 类型,它用于声明变量来存储布尔值 true 和 false。
2) sbyte, System.SByte 类型,最小值为-128,最大值为127,可显示转换为 int、long、double、float、decimal 类型。
3) byte, System.Byte 类型,最小值为0,最大值为255,可显示转换为 int、long、double、float、decimal 类型。
4) short, System.Int16 类型,最小值为-32768,最大值为32767,可显示转换为 int、long、double、float、decimal 类型。
5) ushort, System.UInt16 类型,最小值为0,最大值为65535,可显示转换为 int、long、double、decimal、float 类型。
6) int, System.Int32 类型,最小值为-2147483648,最大值为2147483647;可显示转换为 long、double、decimal、float 类型。
7) uint, System.UInt32 类型,最小值为0,最大值为4294967295,声明 uint 类型变量使用后缀 u或U,可显示转换为 long、double、decimal、float 类型。
8) long, System.Int64 类型,最小值为-9223372036854775808,最大值为9223372036854775807L,声明 long 类型变量使用后缀 l或L,可显示转换为 double、decimal、float 类型。
9) ulong, System.UInt64 类型的最小值为0,最大值为18446744073709551615,声明 long 类型变量使用后缀 ul或UL,可显示转转为 double、decimal、float 类型。
10) float, System.Singe 类型,最小值为-3.4 × 1038,最大值为+3.4 × 1038,表示存储32位浮点值的简单类型,声明 float 类型变量使用后缀 f或F,可显示转换为 double 类型,转为 int、long、decimal 类型,需隐式转换。
11) double, System.Double 类型,最小值为±5.0 × 10−324,最大值为±1.7 × 10308,表示存储64位浮点值的简单类型,声明 double 类型变量使用后缀 d或D;换为 int、long、float、decimal 类型,需隐式转换。
12) decimal, System.Decimal 类型的大致范围(-7.9 x 1028 - 7.9 x 1028) / (100 - 28),表示128位数据类型,同浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算,声明 decimal 类型变量使用后缀 m或M,转为 int、long、double、float 类型,需隐式转换。
13) char, System.Char 类型范围(U+0000 到 U+FFFF),用于声明 .NET framework 使用Unicode字符表示 System.Char 结构的实例;可显示转换为 short、int、long、float、double、decimal 类型。转为 string 类型,需使用 ToString() 方法。
14) enum, System.Enum 类型,一种由一组称为枚举数列表的命名常量组成的独特类型。
15) struct 类型,通常用来封装小型相关变量组,例如:矩形的坐标或库存商品的特征。
2. 引用类型
引用类型的变量存储对实际数据的引用。
申明引用类型关键字:class、interface、delegate。
内置引用类型:dynamyic、object、string。
1) class
2) 委托
1. 创建委托实例的三种方式
1) 使用相同签名的方法创建。
2) 使用匿名方法创建。
3) 使用lambda表达式创建。
3) dynamic
1) dynamic与object的区别
1. dynamic与其它类型之间赋值不需要拆箱和装箱,而object需要拆箱和装箱。
4) 接口
1) 接口只能包含方法、属性、事件和索引器。
5) object
1) 在 C# 的统一类型系统中,所有类型(预定义类型、用户定义类型、引用类型和值类型)都是直接或间接从 Object 继承的。 可以将任何类型的值赋给 object 类型的变量。将值类型的变量转换为对象的过程称为“装箱”。 将对象类型的变量转换为值类型的过程称为“取消装箱”。
6) string
1) string 类型表示一个字符序列(零个或更多 Unicode 字符)string 是 .NET Framework 中 String 的别名。尽管 string 是引用类型,但定义相等运算符(== 和 !=)是为了比较 string 对象(而不是引用)的值。