Skip to content

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 { }

✨ 网站运行时间: 3年11月15天 ❤️ 道阻且长,行则将至 - 微信号: heikedreamer