002 C# 基础语法
-
C#基本数据类型
C# 语言的数据类型分为值类型和引用类型。
值类型包括整型、浮点型、字符型、布尔型、枚举型等;引用类型包括类、接口、数组、委托、字符串等。
整型
| 类 型 | 取值范围 |
|---|---|
| sbyte | 有符号数,占用1个字节,-27〜27-1 |
| byte | 无符号数,占用1个字节,0〜28-1 |
| short | 有符号数,占用2个字节,-215〜215-1 |
| ushort | 无符号数,占用2个字节,0〜216-1 |
| int | 有符号数,占用4个字节,-231〜231-1 |
| uint | 无符号数,占用4个字节,0〜232-1 |
| long | 有符号数,占用8个字节,-263〜263-1 |
| ulong | 无符号数,占用8个字节,0〜264-1 |
浮点型
浮点型是指小数类型,浮点型在 C# 语言中共有两种,一种称为单精度浮点型,一种称为双精度浮点型。
| 类 型 | 取值范围 |
|---|---|
| float | 单精度浮点型,占用4个字节,最多保留7位小数 |
| double | 双精度浮点型,占用8个字节,最多保留16位小数 |
字符型和字符串类型
| 转义字符 | 等价字符 |
|---|---|
| ' | 单引号 |
| " | 双引号 |
| \ | 反斜杠 |
| \0 | 空 |
| \a | 警告(产生蜂鸣音) |
| \b | 退格 |
| \f | 换页 |
| \n | 换行 |
| \r | 回车 |
| \t | 水平制表符 |
| \v | 垂直制表符 |
布尔类型
在 C# 语言中,布尔类型使用 bool 来声明,它只有两个值,即 true 和 false。
- C#运算符
算术运算符
算术运算符是最常用的一类运算符,包括加法、减法、乘法、除法等,
具体的表示符号如下表所示。
| 运算符 | 说 明 |
|---|---|
| + | 对两个操作数做加法运算 |
| - | 对两个操作数做减法运算 |
| * | 对两个操作数做乘法运算 |
| / | 对两个操作数做除法运算 |
| % | 对两个操作数做取余运算 |
这里需要强调的是:
-
当对两个字符串类型的值使用 + 运算符,代表的是两个字符串值的连接,例如 "123"+"456" 的结果为 "23456" 。
-
当使用 / 运算符时也要注意操作数的数据类型,如果两个操作数的数据类型都为整数,那么结果相当于取整运算,不包括余数;而两个操作数中如果有一个操作数的数据类型为浮点数,那么结果则是正常的除法运算。
-
当使用 % 运算符时,如果两个操作都为整数,那么结果相当于取余数。经常使用该运算符来判断某个数是否能被其他的数整除。
逻辑运算符
逻辑运算符主要包括与、或、非等,它主要用于多个布尔型表达式之间的运算。
具体的表示符号如下表所示。
| 运算符 | 含义 | 说明 |
|---|---|---|
| && | 逻辑与 | 如果运算符两边都为 True,则整个表达式为 True,否则为 False;如果左边操作数为 False,则不对右边表达式进行计算,相当于“且”的含义 |
| || | 逻辑或 | 如果运算符两边有一个或两个为 True,整个表达式为 True,否则为 False;如果左边为 True,则不对右边表达式进行计算,相当于“或”的含义 |
| ! | 逻辑非 | 表示和原来的逻辑相反的逻辑 |
在使用逻辑运算符时需要注意逻辑运算符两边的表达式返回的结果都必须是布尔型的。
比较运算符
比较运算符是在条件判断中经常使用的一类运算符,包括大于、小于、不等于、大于等于、小于等于等,具体的符号说明如下表所示。
| 运算符 | 说 明 |
|---|---|
| == | 表示两边表达式运算的结果相等,注意是两个等号 |
| != | 表示两边表达式运算的结果不相等 |
| > | 表示左边表达式的值大于右边表达式的值 |
| < | 表示左边表达式的值小于右边表达式的值 |
| >= | 表示左边表达式的值大于等于右边表达式的值 |
| <= | 表示左边表达式的值小于等于右边表达式的值 |
| 使用比较运算符运算得到的结果是布尔型的值,因此经常将使用比较运算符的表达式用到逻辑运算符的运算中 |
位运算符
所谓的位运算,通常是指将数值型的值从十进制转换成二进制后的运算,由于是对二进制数进行运算,所以使用位运算符对操作数进行运算的速度稍快。
位运算包括与、或、 非、左移、右移等,具体的表示符号如下表所示。
| 运算符 | 说 明 |
|---|---|
| & | 按位与。两个运算数都为 1,则整个表达式为 1,否则为 0;也可以对布尔型的值进行比较,相当于“与”运算,但不是短路运算 |
| | | 按位或。两个运算数都为 0,则整个表达式为 0,否则为 1;也可以对布尔型的值进行比较,相当于“或”运算,但不是短路运算 |
| ~ | 按位非。当被运算的值为 1 时,运算结果为 0;当被运算的值为 0 时,运算结果为 1。该操作符不能用于布尔型。对正整数取反,则在原来的数上加 1,然后取负数;对负整数取反,则在原来的数上加 1,然后取绝对值 |
| ^ | 按位异或。只有运算的两位不同结果才为 1,否则为 0 |
| << | 左移。把运算符左边的操作数向左移动运算符右边指定的位数,右边因移动空出的部分 补 0 |
| >> | 有符号右移。把运算符左边的操作数向右移动运算符右边指定的位数。如果是正值,左侧因移动空出的部分补 0;如果是负值,左侧因移动空出的部分补 1 |
| >>> | 无符号右移。和 >> 的移动方式一样,只是不管正负,因移动空出的部分都补 0 |
| 在上面列出的运算符中比较常用的是左移运算符和右移运算符,左移 1 位相当于将操作数乘 2,右移 1 位相当于将操作数除 2。 |
三元运算符
三元运算符也被称为条件运算符,与后面要学习的 if 条件语句非常类似。
在 C# 语言中三元运算符只有一个,具体的语法形式如下。
布尔表达式 ? 表达式 1: 表达式 2
其中:
- 布尔表达式:判断条件,它是一个结果为布尔型值的表达式。
- 表达式 1:如果布尔表达式的值为 True,该三元运算符得到的结果就是表达式 1 的运算结果。
- 表达式 2:如果布尔表达式的值为 False,该三元运算符得到的结果就是表达式 2 的运算结果。
需要注意的是,在三元运算符中表达式 1 和表达式 2 的结果的数据类型要兼容。
赋值运算符
赋值运算符中最常见的是等号,除了等号以外还有很多赋值运算符,它们通常都是与其他运算符连用起到简化操作的作用。
赋值运算符如下表所示。
| 运算符 | 说 明 |
|---|---|
| = | x=y,等号右边的值给等号左边的变量,即把变量 y 的值赋给变量 x |
| += | x+=y,等同于 x=x+y |
| -= | x-=y,等同于 x=x-y |
| *= | x=y,等同于 x=xy |
| /= | x/=y,等同于 x=x/y |
| %= | x%=y,等同于 x=x%y,表示求 x 除以 y 的余数 |
| ++ | x++ 或 ++x,等同于 x=x+1 |
| -- | x-- 或 --x,等同于 x=x-1 |
需要注意的是,++ 和 -- 运算符放在操作数前和操作数后是有区别的,如果放在操作数前,需要先将操作数加 1 或减 1,然后再与其他操作数进行运算;如果放在操作数后,需要先与其他操作数进行运算,然后操作数自身再加 1。
运算符的优先级
前面介绍了 C# 中基本的运算符,在表达式中使用多个运算符进行计算时,运算符的运算有先后顺序。
如果想改变运算符的运算顺序必须依靠括号。运算符的优先级如下表所示,表中显示的内容是按优先级从高到低排序的。
| 运算符 | 结合性 |
|---|---|
| .(点)、()(小括号)、[](中括号) | 从左到右 |
| + (正)、-(负)、++ (自增)、--(自减)、~(按位非)、!(逻辑非) | 从右到左 |
| * (乘)、/ (除)、% (取余) | 从左向右 |
| + (加)、-(减) | 从左向右 |
| <<、>>、>>> | 从左向右 |
| <、<=、>、>= | 从左向右 |
| ==、!= | 从左向右 |
| & | 从左向右 |
| | | 从左向右 |
| ^ | 从左向右 |
| && | 从左向右 |
| || | 从左向右 |
| ?: | 从右到左 |
| =、+=、-=、*=、/=、%=、&=、|=、^=、~=、<<=、>>=、>>>= | 从右到左 |
| 尽管运算符本身已经有了优先级,但在实际应用中还是建议读者尽量在复杂的表达式中多用括号来控制优先级,以增强代码的可读性。 |
-
C#变量的定义和使用
-
C# const详解:C#常量的定义和使用
-
C#变量命名规则(命名规范)
-
C# if else语句
-
C# switch case语句
-
C# for循环
-
C# while循环
-
C# do while循环
-
C# break语句
-
C# continue语句
-
C# goto语句
浙公网安备 33010602011771号