用于数据类型的关键字(关键字是指系统预留的英文单词,用于程序编写的关键修饰)
在 C# 中,变量分为以下几种类型:
- 值类型(Value types)
- 引用类型(Reference types)
- 指针类型(Pointer types)
值类型
下表列出了 C# 2010 中可用的值类型:
类型名(关键字) | 中文意思 | 程序中的描述与用途 | 值的规定范围 | 默认值 | 备注 |
---|---|---|---|---|---|
bool | 布尔 | 布尔值 | True 或 False | False | |
byte | 字节 | 8 位无符号整数 | 0 到 255 | 0 | |
char | 字符 | 16 位 Unicode 字符,如:一个英文字母 | U +0000 到 U +ffff | ‘\0’ | |
decimal | 十进位的;小数的 | 128 位精确的十进制值,28-29 有效位数 | (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 | 0.0M | |
double | 两倍的;加倍的; | 64 位双精度浮点型,如:1.3D | (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 | 0.0D | 在精确计算中使用浮点数是非常危险的,尽管C#在浮点数运算时采取了很多措施使得浮点数运算的结果看起来是非常正常的。但实际上如果不清楚浮点数的特性而贸然使用的话,将造成非常严重的隐患。 |
float | 浮动;小数在C#中需要用浮点型表示 | 32 位单精度浮点型,如:1.3F | -3.4 x 1038 到 + 3.4 x 1038 | 0.0F | |
int | 不含分数或小数的数(integer的缩写) | 32 位有符号整数类型 | -2,147,483,648 到 2,147,483,647 | 0 | |
long | (长度或距离)长的 | 64 位有符号整数类型 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L | |
sbyte | 有符号字节(sbyte keyword的缩写) | 8 位有符号整数类型 | -128 到 127 | 0 | |
short | 短的 | 16 位有符号整数类型 | -32,768 到 32,767 | 0 | |
uint | 无符号整型;无符号整数; | 32 位无符号整数类型 | 0 到 4,294,967,295 | 0 | |
ulong | 无符号长整数 | 64 位无符号整数类型 | 0 到 18,446,744,073,709,551,615 | 0 | |
ushort | 无符号短整数 | 16 位无符号整数类型 | 0 到 65,535 | 0 |
引用类型
引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。
类型名(关键字) | 中文意思 | 程序中的描述与用途 | 备注 |
---|---|---|---|
object | 对象 | 是所有类型的终极父类,所有类型都可以向上转换为object | 当一个值类型转换为对象类型(object)时,则被称为 装箱 |
dynamic | 动态 | 将类型检查放到了运行期(在编译时不在进行检查) | dynamic是FrameWork4.0的新特性 |
string | 一串 | 程序里指的是字符串(允许您给变量分配任何字符串值) | 例如:123anbcdasdfa的说法发 |
class | 把…看作;班级; | 用于自己创建(定义)一种类型的关键字 | 例如:class parents{} 自定义一个名为parents的类型 |
interface | 接口;接口程序 | 定义了所有类继承接口时应遵循的语法合同 | 可以理解为双方或某一方制定的标准,所有人都要遵守才能与程序进行连接 |
delegate | 把(工作、权力等)委托(给下级);选派(某人做某事) | 委托可以理解成C#中的一个指针 | 可以在运行时改变它 |
指针类型
类型名(关键字) | 中文意思 | 程序中的描述与用途 | 使用语法 | 示例 |
---|---|---|---|---|
类型名+* | 指针类型变量存储另一种类型的内存地址 | type* identifier | 例如:char* cptr;int* iptr; |
流程控制的关键字
判断语句
流程控制语句关键字 | 中文意思 | 程序中的描述与用途 |
---|---|---|
if | 如果 | 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 |
if…else | 如果……其他的 | 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。 |
嵌套 if | 如果……其他的……如果……其他的 | 您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 |
switch | 开关 | switch经常跟case一起使用,是一个判断选择代码。 |
嵌套 switch 语句 | 您可以在一个 switch 语句内使用另一个 switch 语句。 |
循环类型
循环语句关键字 | 中文意思 | 程序中的描述与用途 |
---|---|---|
while | 当…的时候 | 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 |
for | 因为;由于 | 多次执行一个语句序列,简化管理循环变量的代码。 |
foreach | 遍历数组;循环;遍历;循环标签 | 多次执行一个语句序列,简化管理循环变量的代码。 |
do…while | 做……当…的时候 | 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 |
嵌套循环 | 您可以在 while、for 或 do..while 循环内使用一个或多个循环。 |
循环控制语句
循环控制语句更改执行的正常序列。当执行离开一个范围时,所有在该范围中创建的自动对象都会被销毁。
控制语句关键字 | 中文意思 | 程序中的描述与用途 |
---|---|---|
break | 间断;暂停 | 终止 loop 或 switch 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。 |
continue | 持续;继续做;不停地 | 引起循环跳过主体的剩余部分,立即重新开始测试条件。 |
用于封装的关键字
关键字 | 中文意思 | 程序中的描述与用途 |
---|---|---|
public | 大众的;公众的 | 所有对象都可以访问 |
private | 私有的;私用的;自用的; | 对象本身在对象内部可以访问 |
protected | 受保护的 | 只有该类对象及其子类对象可以访问 |
internal | 内部的; | 同一个程序集的对象可以访问 |
其他常用关键字
关键字 | 中文意思 | 程序中的描述与用途 |
---|---|---|
using | 使用; | 用于命名空间 |
virtual | 模拟的,虚拟的 | 会根据运行时期对象实例来动态判断要调用的它函数 |
void | 空间;空白 | 一般用于函数的返回值void代表什么也不返回 |
volatile | 易变的,不稳定的 | volatile是变量修饰符,用Volatile声明的变量就相当于告诉编译器,我不要把这个变量写缓存中,因为这个变量是可能发生改变的。 |
typeof | 属于…类型的 | C#中通过Type类可以访问任意数据类型信息,例如:使用typeof运算符,如Type t = typeof(int); |
struct | 结构;结构体; | struct 关键字用于创建结构体 |
static | 静止的;静态的; | static静态的,不变的,在某个类中只有一个,不会因实例化对象的不同而不同 |
stackalloc | 堆栈分配 | stackalloc 表达式在堆栈上分配内存块。 |
sizeof | 确定…的尺寸 | 在C#中,sizeof用来计算类型的大小,单位是字节 |
out | 出去; | 使用 out参数的方法仍然可以将变量用作返回类型,一般用于返回值没有办法满足返回需求的时候使用out参数 |
sealed | 封盖…的表面 | 当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。 |
null | 无效的 | null 关键字是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值 |
is | 是 | 检查对象是不是给定类型,或者是否可以转换为给定类型,如果是,这个运算符就返回True. |
lock | 锁上;把…锁起来 | lock是C#中最常用的同步方式 |
override | 覆盖 | 要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符 |
params | 参数 | params主要是在声明方法时参数类型或者个数不确定时使用 |
new | 刚出现的;新的 | 简而言之就是用来实例化 |
namespace | 名字域;名空间 | 命名空间是一个域的关键字 |
implicit | 含蓄的;不直接言明的; | 关键字用于声明隐式的用户自定义的类型转换运算符 |
fixed | 固定的 | fixed 语句禁止垃圾回收器重定位可移动的变量,执行完语句中的代码后,任何固定变量都被解除固定并受垃圾回收的制约。 |
operator | 操作员 | operator 关键字用于在类或结构声明中声明运算符,用于从写操作符 |
readonly | 只读的 | 只读字段,就是说在程序运转过程中,程序中能够读取这个字段的值,而不能修正它的值 |
ref | 涉及 | ref是reference 的缩写用于将方法内的变量改变后带出方法外,以理解为类似的传址引用 |
return | 返回 | return语句终止它所在的方法的执行,并将控制权返回给调用方法,另外,它还可以返回一个可选值 |
checked | 受约束的;受限制的 | checked 关键字用于对整型算术运算和转换显式启用溢出检查 |
unchecked | 不加约束的;不受限制的 | 可以使用unchecked取消溢出检查 |
unsafe | 不安全的 | 指针在c#中是不提倡使用的,有关指针的操作被认为是不安全的(unsafe) |
上下文关键字
关键字 | 中文意思 | 程序中的描述与用途 |
---|---|---|
add | 增加;加添 | 用于向集合、数组、数据库添加数据时 |
alias | 别名,化名 | 可能必须引用两个具有相同完全限定类型名的程序集版本。需要用到外部别名的时候可以使用 |
ascending | 上升的,渐进的 | ascending 上下文关键字用在查询表达式的 orderby 子句中,用于指定从最小到最大的排序顺序 |
descending | 下降的,递减的 | descending 上下文关键字用在查询表达式的 orderby 子句中,用于指定从最大到最小的排序顺序。 |
from | 从 | 用于从集合中查询 |
get | 收到;接到; | get从数组、属性、集合中读取值 |
global | 整体的;全面的; | global它是全局访问修饰符,即所有对象都是完整路径表示 |
group | 将…分类;把…分组 | 用于分组查询 |
into | 到…里面;进入; | 可以使用 into 上下文关键字创建一个临时标识符,以便将 group、join 或 select 子句的结果存储到新的标识符中 |
join | 连接;接合; | join 子句可用于将来自不同源序列并且在对象模型中没有直接关系的元素相关联(连表查询) |
let | 允许;让;准许;许可;同意; | 在查询表达式中,存储子表达式的结果有时很有用,这样可以在随后的子句中使用 |
orderby | 排序子句 | 用于集合排序 |
partial | 部分的;不完全的;局部 | Partial是局部类型的意思 |
remove | 去掉;从…去除; | 从数组、属性、集合中移除值 |
select | 选取;选择; | 用于从集合中查询 |
set | 设置;放置 | 设置数组、属性、集合中的值 |