学习笔记的所有源代码都在这里,https://github.com/techstay/csharp-learning-note 。
整型
C#有8个预定义的整数类型。
名称 | 说明 |
---|---|
sbyte | 8位有符号整数 |
byte | 8位无符号整数 |
short | 16位有符号整数 |
ushort | 16位无符号整数 |
int | 32位有符号整数 |
uint | 32位无符号整数 |
long | 64位有符号整数 |
ulong | 64位无符号整数 |
对于程序中出现的数字字面值,如果什么符号都不带,那么默认就是int类型的值。如果后面加UL、L、U等后缀,就说明是ulong、long、uint类型的字面值。后缀也可以是小写字母,但是由于小写字母l容易和数字1混淆,所以最好还是使用大写字母。对于所有的整型,还可以添加0x前缀,表示16进制数。
//定义一个int变量并赋值为十六进制10(A)
int i = 0XA;
//定义一个uint变量并赋值为1000
//后缀U表示uint类型字面值
uint ui = 1000U;
//定义一个long变量并赋值1000
//后缀L表示long类型字面值
long l = 1000L;
//定义一个ulong变量
//后缀UL表示ulong类型字面值
ulong ul = 1000UL;
浮点类型
类型 | 说明 | 位数 |
---|---|---|
float | 32位单精度浮点数 | 7 |
double | 64位双精度浮点数 | 15/16 |
对于一个浮点数,没有后缀默认是double型的,如果有F后缀则认为是float型的。
//定义一个float变量
//后缀F表示float类型字面值
float f = 5.0F;
//定义一个double变量
//无后缀默认是double类型字面值
double d = 5.0;
decimal类型
decimal类型用于执行精确的货币计算等任务,提供了128位高精度十进制数的表示法。它的字面值后缀是M。
//定义一个decimal变量
//后缀M表示decimal类型字面值
decimal dm = 12.34M;
bool类型
bool类型只有两种取值,true或者false。该类型用于进行条件真假的判断,不能转换到其它类型。
bool condition=true;
condition=false;
char类型
char类型使用单引号'
括起来,表示一个16位的Unicode字符。虽然它和byte能表示的范围一样,但是C#编译器仍然认为这是两个不同的类型,不能直接进行隐式转换。除此之外,char类型还可以用4位十六进制的Unicode值(如’\u0041’)、转换为char类型的数字(如(char)65)或者十六进制数(如’\x0041’)来表示。另外,char类型还可以表示转义序列。
//定义一个char变量
//值为单个Unicode(UTF-16)字符
//可以是转义字符或者其他可以转换为
//字符的值
char c = 'a';
c = '\n';
//Unicode字符序列
c = '\u0041';
//16进制数
c = '\x0041';
转义序列 | 字符 |
---|---|
\’ | 单引号 |
\” | 双引号 |
\ | 反斜杠 |
\0 | 空 |
\a | 警告 |
\b | 退格 |
\f | 幻夜 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
预定义的引用类型
以上所有类型都是值类型,除此之外,在C#中还有两种预定义的引用类型,object和string。object类是所有类型的基类,包括所有的基本的值类型、结构和类类型。而string是不可变字符串类。