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
类 型 取值范围
float 单精度浮点型,占用4个字节,最多保留7位小数
double 双精度浮点型,占用8个字节,最多保留16位小数
转义字符 等价字符
\' 单引号
\" 双引号
\\ 反斜杠
\0 空
\a 警告(产生蜂鸣音)
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
运算符 说 明
+ 对两个操作数做加法运算
- 对两个操作数做减法运算
* 对两个操作数做乘法运算
/ 对两个操作数做除法运算
% 对两个操作数做取余运算
在操作数中只要有一个值是字符串类型的,+ 运算符起到的作用就是连接,而不是相加运算
<< 左移。把运算符左边的操作数向左移动运算符右边指定的位数,右边因移动空出的部分 补 0
>> 有符号右移。把运算符左边的操作数向右移动运算符右边指定的位数。如果是正值,左侧因移动空出的部分补 0;如果是负值,左侧因移动空出的部分补 1
>>> 无符号右移。和 >> 的移动方式一样,只是不管正负,因移动空出的部分都补 0
~ 按位非。当被运算的值为 1 时,运算结果为 0;当被运算的值为 0 时,运算结果为 1。该操作符不能用于布尔型。对正整数取反,则在原来的数上加 1,然后取负数;对负整数取反,则在原来的数上加 1,然后取绝对值
^ 按位异或。只有运算的两位不同结果才为 1,否则为 0
如果要跳转到某一个标签指定的位置,直接使用 goto 加标签名即可。
在上面的语句中使用了 goto 语句后,语句的执行顺序发生了变化,即先执行语句块 2,再执行语句块 1。
此外,需要注意的是 goto 语句不能跳转到循环语句中,也不能跳出类的范围。
由于 goto 语句不便于程序的理解,因此 goto 语句并不常用。
类的访问修饰符:用于设定对类的访问限制,包括 public、internal 或者不写,用 internal 或者不写时代表只能在当前项目中访问类;public 则代表可以在任何项目中访问类。
修饰符:修饰符是对类本身特点的描述,包括 abstract、sealed 和 static。abstract 是抽象的意思,使用它修饰符的类不能被实例化;sealed 修饰的类是密封类,不能 被继承;static 修饰的类是静态类,不能被实例化。
类名:类名用于描述类的功能,因此在定义类名时最好是具有实际意义,这样方便用户理解类中描述的内容。在同一个命名空间下类名必须是唯一的。
类的成员:在类中能定义的元素,主要包括字段、属性、方法
类中的成员包括字段、属性、方法。每个类成员在定义时需要指定访问修饰符、修饰符。
类的访问修饰符主要有两个,即 internal 和 public,如果省略了访问修饰符,即为 internal。
类中成员的访问修饰符有 4 个,具体用法如下。
1) public
成员可以被任何代码访问。
2) private
成员仅能被同一个类中的代码访问,如果在类成员前未使用任何访问修饰 符,则默认为private。
3) internal
成员仅能被同一个项目中的代码访问。
4) protected
成员只能由类或派生类中的代码访问。派生类是在继承中涉及的,将在后面详细介绍。
字段的定义与前面介绍的变量和常量的定义类似,只是在变量或常量前面可以加上访问修饰符、修饰符。
在修饰字段时通常用两个修饰符,即readonly (只读)和static (静态的)。
使用 readonly 修饰字段意味着只能读取该字段的值而不能给字段赋值。
使用 static 修饰的字段是静态字段,可以直接通过类名访问该字段。
需要注意的是常量不能使用 static 修饰符修饰。
定义方法的语法形式如下。
访问修饰符 修饰符 返回值类型 方法名(参数列表)
{
语句块;
}
其中:
1) 访问修饰符
所有类成员访问修饰符都可以使用,如果省略访问修饰符,默认是 private。
2) 修饰符
在定义方法时修饰符包括 virtual(虚拟的)、abstract(抽象的)、override(重写的)、static(静态的)、sealed(密封的)。override 是在类之间继承时使用的。
3) 返回值类型
用于在调用方法后得到返回结果,返回值可以是任意的数据类型,如果指定了返回值类型,必须使用 return 关键字返回一个与之类型匹配的值。如果没有指定返回值类型,必须使用 void 关键字表示没有返回值。
4) 方法名
对方法所实现功能的描述。方法名的命名是以 Pascal 命名法为规范的。
5)参数列表
在方法中允许有 0 到多个参数,如果没有指定参数也要保留参数列表的小括号。参数的定义形式是“数据类型参数名”,如果使用多个参数,多个参数之间需要用逗号隔开。