C# 关键字详解
C# 语言包含丰富的关键字,这些关键字是语言的核心组成部分,具有特殊含义。以下是 C# 关键字的分类和详细说明:
一、基本关键字
1. 类型定义关键字
- class:定义类csharp
class MyClass { } - struct:定义结构体csharp
struct Point { public int X; public int Y; } - interface:定义接口csharp
interface ILogger { void Log(string message); } - enum:定义枚举csharp
enum Color { Red, Green, Blue }
2. 访问修饰符
- public:无访问限制
- private:仅当前类可访问
- protected:当前类及其派生类可访问
- internal:同一程序集内可访问
- protected internal:同一程序集或派生类可访问
二、成员修饰符
1. 方法相关
- void:表示方法不返回值csharp
void Print() { Console.WriteLine("Hello"); } - return:从方法返回csharp
int Add(int a, int b) { return a + b; }
2. 字段和属性
- const:定义常量csharp
const int MaxCount = 100; - readonly:定义只读字段csharp
readonly string _connectionString; - static:定义静态成员csharp
static int InstanceCount;
三、流程控制
1. 条件语句
- if/else:条件判断csharp
if (age > 18) { /* 成人 */ } else { /* 未成年 */ } - switch:多分支选择csharp
switch (value) { case 1: break; case 2: break; default: break; }
2. 循环语句
- for:计数循环csharp
for (int i = 0; i < 10; i++) { } - foreach:集合迭代csharp
foreach (var item in collection) { } - while:条件循环csharp
while (condition) { } - do/while:后测试循环csharp
do { } while (condition);
四、异常处理
1. 异常控制
- try/catch/finally:异常捕获csharp
try { /* 可能抛出异常的代码 */ } catch (Exception ex) { /* 异常处理 */ } finally { /* 清理代码 */ } - throw:抛出异常csharp
throw new InvalidOperationException();
五、面向对象特性
1. 继承与多态
- base:访问基类成员csharp
public Derived() : base() { } - override:重写虚方法csharp
public override string ToString() { } - virtual:声明虚方法csharp
public virtual void Draw() { } - abstract:声明抽象成员csharp
public abstract void Calculate();
2. 密封与隐藏
- sealed:防止继承或重写csharp
public sealed class FinalClass { } - new:隐藏基类成员csharp
public new void Method() { }
六、类型操作
1. 类型检查与转换
- is:类型检查csharp
if (obj is string) { } - as:安全类型转换csharp
string s = obj as string; - typeof:获取类型对象csharp
Type t = typeof(string);
2. 其他类型操作
- sizeof:获取类型大小csharp
int size = sizeof(int); // 4 - nameof:获取标识符名称csharp
string name = nameof(Console.WriteLine); // "WriteLine"
七、上下文关键字
1. 异步编程
- async/await:异步方法csharp
async Task<int> GetDataAsync() { var data = await FetchData(); return data.Length; }
2. 迭代器
- yield:创建迭代器csharp
IEnumerable<int> GetNumbers() { yield return 1; yield return 2; }
3. LINQ 相关
- from/where/select:LINQ 查询csharp
var query = from x in collection where x > 5 select x * 2;
八、特殊用途关键字
1. 不安全代码
- unsafe:不安全代码块csharp
unsafe { int* ptr = &x; } - fixed:固定指针csharp
fixed (int* p = &arr[0]) { }
2. 参数传递
- ref/out:引用传递参数csharp
void Modify(ref int x) { x++; } void Initialize(out int y) { y = 10; }
3. 其他
- checked/unchecked:算术溢出检查csharp
checked { int x = int.MaxValue + 1; } // 抛出异常 - default:获取类型默认值csharp
int x = default; // 0
九、上下文相关关键字
1. 部分类型
- partial:分部类/方法csharp
partial class MyClass { partial void DoSomething(); }
2. 访问器控制
- get/set:属性访问器csharp
public int Count { get; private set; } - add/remove:事件访问器csharp
public event EventHandler MyEvent { add { /* 添加处理程序 */ } remove { /* 移除处理程序 */ } }
十、最新版本新增关键字
C# 7.0+
- in:只读引用参数csharp
void Process(in LargeStruct data) { } - record:记录类型 (C# 9)csharp
record Person(string Name, int Age);
C# 10+
- file:文件作用域类型 (C# 11)csharp
file class HiddenClass { }