网站首页 > 技术文章 正文
C#的常用关键字和预定义类型
C#是一种强类型的面向对象的编程语言,它提供了一些关键字和预定义类型来帮助开发者编写高效、可读和安全的代码。本文将介绍C#中的一些常用的关键字和预定义类型,以及它们的作用和用法。
关键字
关键字是预定义的保留标识符,对编译器有特殊意义。除非前面有@前缀,否则不能在程序中用作标识符。例如,@if是有效标识符,而if则不是,因为if是关键字1。
C#中有两种类型的关键字:一般关键字和上下文关键字。一般关键字是C#程序任意部分中的保留标识符,上下文关键字仅在一部分程序上下文中有特殊含义,可以在相应上下文范围之外用作标识符1。
一般关键字
以下是C#中的一般关键字1:
关键字 | 说明 |
abstract | 用于声明抽象类或抽象成员 |
as | 用于执行引用类型或可空类型的安全转换 |
base | 用于访问基类的成员 |
bool | 用于声明布尔值类型 |
break | 用于终止循环或switch语句 |
byte | 用于声明8位无符号整数类型 |
case | 用于标记switch语句中的分支 |
catch | 用于捕获异常 |
char | 用于声明16位Unicode字符类型 |
checked | 用于启用整数算术运算和转换的溢出检查 |
class | 用于声明类 |
const | 用于声明常量 |
continue | 用于跳过循环的当前迭代 |
decimal | 用于声明128位精确十进制值类型 |
default | 用于指定switch语句中的默认分支或指定泛型参数的默认约束 |
delegate | 用于声明委托类型 |
do | 用于声明后测试循环语句 |
double | 用于声明64位浮点值类型 |
else | 用于指定if语句中的备选分支 |
enum | 用于声明枚举类型 |
event | 用于声明事件 |
explicit | 用于声明用户定义的显式转换运算符或指定泛型参数的显式约束 |
extern | 用于声明外部方法 |
false | 用于表示布尔值false |
finally | 用于指定无论是否发生异常都要执行的代码块 |
fixed | 用于防止指针移动或修改被固定变量所引用的对象 |
float | 用于声明32位浮点值类型,也称为单精度浮点类型 |
for | 用于声明前测试计数循环语句 |
foreach | 用于声明遍历集合中每个元素的循环语句 |
goto | 用于无条件转移到程序中指定位置的语句 |
if | 用于声明条件语句 |
implicit | 用于声明用户定义的隐式转换运算符或指定泛型参数的隐式约束 |
in | 用于指定泛型参数是逆变的、foreach语句中集合元素的别名或查询表达式 |
关键字 | 说明 |
int | 用于声明32位有符号整数类型 |
interface | 用于声明接口 |
internal | 用于指定类型或成员的可访问性为当前程序集内部 |
is | 用于检查对象是否与给定类型兼容 |
lock | 用于获取给定对象的互斥锁,以便同步多线程访问 |
long | 用于声明64位有符号整数类型 |
namespace | 用于声明命名空间 |
new | 用于创建对象或委托的实例,或指定泛型参数的新约束 |
null | 用于表示空引用或可空值类型的无值状态 |
object | 用于声明通用引用类型,是所有类型的基类 |
operator | 用于声明用户定义的运算符 |
out | 用于指定参数是按引用传递的、泛型参数是协变的或查询表达式的返回值 |
override | 用于修改虚方法、属性、索引器或事件的实现 |
params | 用于指定方法参数可以接受可变数量的实参 |
private | 用于指定类型或成员的可访问性为当前类或结构内部 |
protected | 用于指定类型或成员的可访问性为当前类或结构及其派生类内部 |
public | 用于指定类型或成员的可访问性为任何位置 |
readonly | 用于声明只读字段或只读属性 |
ref | 用于指定参数是按引用传递的、返回值是按引用返回的或只读引用局部变量 |
return | 用于从方法返回值或结束方法执行 |
sbyte | 用于声明8位有符号整数类型 |
sealed | 用于防止类被继承或虚成员被重写 |
short | 用于声明16位有符号整数类型 |
sizeof | 用于获取值类型占用的字节数 |
stackalloc | 用于在堆栈上分配内存块 |
static | 用于声明静态类或静态成员 |
关键字 | 说明 |
string | 用于声明字符串类型,表示Unicode字符序列 |
struct | 用于声明结构类型,表示值类型 |
switch | 用于选择多个分支中的一个执行 |
this | 用于引用当前实例或扩展方法中的第一个参数 |
throw | 用于引发异常或重新引发当前异常 |
true | 用于表示布尔值true |
try | 用于定义可能发生异常的代码块和处理异常的代码块 |
typeof | 用于获取表示类型的Type对象 |
uint | 用于声明32位无符号整数类型 |
ulong | 用于声明64位无符号整数类型 |
unchecked | 用于禁用整数算术运算和转换的溢出检查 |
unsafe | 用于声明不安全的上下文,可以使用指针 |
ushort | 用于声明16位无符号整数类型 |
using | 用于引入命名空间或类型的别名,或指定可释放对象的范围 |
virtual | 用于声明虚方法、属性、索引器或事件,可以在派生类中重写 |
void | 用于指定方法不返回值或指定指针指向未指定类型的内存 |
volatile | 用于声明字段可以由多个线程同时修改 |
while | 用于声明前测试条件循环语句 |
上下文关键字
以下是C#中的上下文关键字:
关键字 | 说明 |
add | 用于自定义事件的访问器 |
alias | 用于在extern别名中引入外部程序集 |
and | 用于在模式匹配中表示逻辑与操作 |
ascending | 用于在查询表达式中指定升序排序 |
args | 用于在lambda表达式中表示参数列表 |
async | 用于声明异步方法或lambda表达式 |
await | 用于等待异步任务完成并提取结果 |
by | 用于在查询表达式中指定分组依据或排序依据 |
descending | 用于在查询表达式中指定降序排序 |
dynamic | 用于声明动态类型,表示运行时确定类型 |
equals | 用于在查询表达式中指定相等比较 |
from | 用于在查询表达式中指定数据源和范围变量 |
get | 用于自定义属性或索引器的访问器 |
global | 用于访问全局命名空间,避免与局部命名空间冲突 |
group | 用于在查询表达式中指定分组操作 |
init | 用于自定义属性或索引器的初始化器,只能在对象初始化期间赋值一次 |
into | 用于在查询表达式中创建临时范围变量或执行连接操作 |
关键字 | 说明 |
join | 用于在查询表达式中指定连接操作 |
let | 用于在查询表达式中引入新的范围变量 |
managed | 用于指定函数指针调用约定为托管的 |
nameof | 用于获取标识符的名称 |
nint | 用于声明本机大小的有符号整数类型 |
not | 用于在模式匹配中表示逻辑非操作 |
notnull | 用于在模式匹配中表示非空约束 |
nuint | 用于声明本机大小的无符号整数类型 |
on | 用于在查询表达式中指定连接条件 |
or | 用于在模式匹配中表示逻辑或操作 |
orderby | 用于在查询表达式中指定排序操作 |
partial | 用于声明部分类或部分方法,可以在多个文件中定义 |
record | 用于声明记录类型,表示不可变的值类型 |
remove | 用于自定义事件的访问器 |
select | 用于在查询表达式中指定投影操作 |
set | 用于自定义属性或索引器的访问器 |
unmanaged | 用于指定函数指针调用约定为非托管的或泛型参数的非托管约束 |
value | 用于表示属性或索引器的值或匿名函数的返回值 |
var | 用于声明隐式类型的局部变量或范围变量 |
when | 用于在switch语句中指定筛选条件或在catch子句中指定异常筛选器 |
where | 用于在查询表达式中指定过滤条件或泛型参数的约束条件 |
with | 用于创建记录类型的副本并修改部分属性值 |
yield | 用于从迭代器方法返回值 |
预定义类型
C#提供了一些预定义类型,它们是.NET库中的类型的别名,可以直接使用而无需引入命名空间。以下是C#中的预定义类型:
值类型
值类型是直接存储数据的类型,而不是存储对数据的引用。值类型包括以下几种:
- 整型数值类型:表示整数,有符号和无符号,不同的位数。例如:int, long, byte, uint等。
- 浮点数值类型:表示小数,有不同的精度和范围。例如:float, double, decimal等。
- 布尔类型:表示真或假,只有两个可能的值。例如:bool。
- 字符类型:表示单个Unicode字符,使用单引号括起来。例如:char。
- 枚举类型:表示一组命名的常数,可以使用enum关键字定义。例如:enum Color { Red, Green, Blue }。
- 结构类型:表示自定义的值类型,可以包含多个字段和方法,可以使用struct关键字定义。例如:struct Point { public int X; public int Y; }。
- 元组类型:表示一组有限数量的有序元素,可以使用圆括号和逗号分隔元素定义。例如:(int, string) t = (1, “hello”)。
引用类型
引用类型是存储对数据的引用(地址)的类型,而不是直接存储数据。引用类型包括以下几种:
- 对象类型:表示任何类型的数据,是所有类型的基类,可以使用object关键字或System.Object类名表示。例如:object o = “hello”。
- 字符串类型:表示Unicode字符序列,是不可变的引用类型,可以使用string关键字或System.String类名表示。例如:string s = “hello”。
- 委托类型:表示对具有特定参数列表和返回类型的方法的引用,可以使用delegate关键字或System.Delegate类名表示。例如:delegate void Action();。
- 动态类型:表示在运行时确定类型的数据,可以使用dynamic关键字或System.Object类名表示。例如:dynamic d = 1; d = “hello”。
- 接口类型:表示一组抽象的成员,可以由其他类型实现,可以使用interface关键字定义。例如:interface IDisposable { void Dispose(); }。
- 数组类型:表示一维或多维的同类型元素的集合,可以使用方括号和逗号分隔维度定义。例如:int[] a = new int[10]; int[,] b = new int[3, 4];。
- 集合类型:表示一组不同类型的元素的集合,可以使用泛型或非泛型的类或接口表示。例如:List<int> list = new List<int>(); ArrayList array = new ArrayList();。
- 类类型:表示自定义的引用类型,可以包含多个字段、属性、方法、事件等,可以使用class关键字定义。例如:class Person { public string Name { get; set; } public int Age { get; set; } }。
- 记录类型:表示不可变的引用类型,可以包含多个字段、属性、方法等,可以使用record关键字定义。例如:record Student (string Name, int Age);。
总结
本文介绍了C#中的一些常用的关键字和预定义类型,以及它们的作用和用法。关键字是编译器识别的保留标识符,预定义类型是.NET库中的类型的别名。了解这些关键字和预定义类型有助于编写高效、可读和安全的C#代码。
猜你喜欢
- 2024-11-12 C#-练习题 014(c#程序题及答案)
- 2024-11-12 C# 类型转换(c类型转换有哪三种形式)
- 2024-11-12 C#-无参数有返回值的方法 060(有参无返回值 c语言)
- 2024-11-12 C#中的值类型和引用类型(c# 引用类型)
- 2024-11-12 abelkhan中的rpc框架(rpc框架应用场景)
- 2024-11-12 C#编程零基础到入门学习-C# 值类型和引用类型(4-8)
- 2024-11-12 C#_图片拖拽(c#窗体图片移动)
- 2024-11-12 数据类型 - C#入门教程(c#常见数据类型)
- 2024-11-12 C#中堆栈(Stack)和堆(Heap)的区别——第一部分
- 2024-11-12 C#编写的WINCC控件如何读取变量值
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)