C#学习笔记 基本数据类型

时间:2022-10-19 17:25:14

学习笔记的所有源代码都在这里,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是不可变字符串类。