一.值类型和引用类型
1.值类型和引用类型的区别
(1)值类型直接存储值,引用类型存储对值得引用
(2)值类型存储在堆栈中,引用类型存储在托管堆上
2、如果变量是一个引用,则可以把其值设置为null,表示它不引用任何对象
3、在C#中,基本类型如bool和long都是值类型。相反,大多数更复杂的C#数据类型,包括我们自己声明的类都是引用类型。
4.如果需要把自己的类型定义为值类型,就应该把它声明为一个结构。
二.CTS类型
C#认可的基本预定义类型并不是内置在C#语言中的,而是内置于.NET Framework中。
三.预定义的值类型
1.整型
名称 | CTS类型 | 说明 | 范围 |
sbyte | System.SByte | 8位有符号的整数 | -128~127(-2的8次方~2的7次方-1) |
short | System.Int16 | 16位有符号的整数 | -32768~32767(-2的15次方~2的15次方-1) |
int | System.Int32 | 32位有符号的整数 | -2417483648~2147483647(-2的31次方~2的31次方-1) |
long | System.Int64 | 64位有符号的整数 | -9223372036854775808~9223372036854775807(-2的63次方~2的63次方-1) |
byte | System.Byte | 8位无符号的整数 | 0~255(0~2的8次方-1) |
ushort | System.UInt16 | 16位无符号的整数 | 0~65535(0~2的16次方-1) |
uint | System.UInt32 | 32位无符号的整数 | 0-4294967295(0~2的32次方-1) |
ulong | System.UInt64 | 64位无符号的整数 | 0~18446744073709551615(0~2的64次方-1) |
所有整数类型的变量都能被赋予十进制或十六进制的值,后者需要加0x前缀.
1 long x=0x12ab
2.浮点类型
名称 | CTS类型 | 说明 | 位数 | 范围(大致) |
float | System.Single | 32位单精度浮点数 | 7 | +-1.5 x 10的245次方~+-3.4 x 10的38次方 |
doble | System.Double | 64位双精度浮点数 | 15/16 | +-5.0 x 10的-324次方~+-1.7 x 10的308次方 |
3.decimal类型
名称 | CTS类型 | 说明 | 位数 | 范围(大致) |
decimal | System.Decimal | 128位高精度十进制数表示法 | 28 | +-1.0 x 10的-28次方~+-7.9 x 10的28次方 |
4.bool类型
名称 | CTS类型 | 说明 | 位数 | 值 |
bool | System.Boolean | 表示true或者false | NA | teue或false |
5.字符类型
名称 | CTS类型 | 值 |
char | System.Char | 表示一个16位的Unicode字符 |
char类型的字面量是用单引号括起来的,如‘A‘.如果把字符放在双引号中,编译器会把它看成字符串,从而产生错误。
常见转义符
转义序列 | 字符 |
\‘ | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
\0 | 空 |
\a | 警告 |
\b | 退格 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
6 预定义的引用类型
名称 | CTS类型 | 说明 |
object | System.Object | 根类型,CTS中的其他类型都是从它派生而来的(包括值类型) |
string | System.String | Unicode字符串 |
时间: 2024-10-07 23:26:43