跳转到内容

C Sharp 关键字

来自代码酷
Admin留言 | 贡献2025年4月29日 (二) 18:39的版本 (Page creation by admin bot)

(差异) ←上一版本 | 已核准修订 (差异) | 最后版本 (差异) | 下一版本→ (差异)

C#关键字[编辑 | 编辑源代码]

介绍[编辑 | 编辑源代码]

C#关键字(也称为保留字)是C#语言中具有特殊含义的预定义标识符,用于表示语言的核心功能。这些单词不能被用作变量名、类名或其他用户定义的标识符,除非使用@前缀进行转义(如@class)。C#关键字分为以下几类:

  • 类型声明(class, struct, enum
  • 访问修饰符(public, private, protected
  • 流程控制(if, else, switch
  • 循环(for, while, foreach
  • 异常处理(try, catch, finally
  • 上下文关键字(仅在特定上下文中被视为关键字,如var, async

完整关键字列表[编辑 | 编辑源代码]

以下是C# 12.0中的所有关键字(截至2023年):

标准关键字
abstract as base bool break
byte case catch char checked
class const continue decimal default
delegate do double else enum
event explicit extern false finally
fixed float for foreach goto
if implicit in int interface
internal is lock long namespace
new null object operator out
override params private protected public
readonly ref return sbyte sealed
short sizeof stackalloc static string
struct switch this throw true
try typeof uint ulong unchecked
unsafe ushort using virtual void
volatile while
上下文关键字
add alias and ascending async
await by descending dynamic equals
from get global group init
into join let nameof nint
not notnull nuint on or
orderby partial record remove required
select set unmanaged value var
when where with yield

关键代码示例[编辑 | 编辑源代码]

基本关键字使用[编辑 | 编辑源代码]

// 使用if-else和return关键字
public string CheckNumber(int num)
{
    if (num > 0)
        return "Positive";
    else if (num < 0)
        return "Negative";
    else
        return "Zero";
}

// 使用class和new关键字
class Program
{
    static void Main()
    {
        var result = CheckNumber(10); // 使用var上下文关键字
        Console.WriteLine(result); // 输出: Positive
    }
}

上下文关键字示例[编辑 | 编辑源代码]

// 使用async/await上下文关键字
public async Task DownloadDataAsync()
{
    using (var client = new HttpClient())
    {
        string data = await client.GetStringAsync("https://example.com");
        Console.WriteLine(data);
    }
}

关键字分类解析[编辑 | 编辑源代码]

访问修饰符[编辑 | 编辑源代码]

  • public:无访问限制
  • private:仅当前类可访问
  • protected:当前类及其派生类可访问
  • internal:同一程序集内可访问
  • protected internal:同一程序集或派生类可访问

classDiagram class AccessExample{ +publicField -privateField #protectedField ~internalField }

类型系统关键字[编辑 | 编辑源代码]

类型关键字对比
关键字 对应.NET类型 大小 范围
bool System.Boolean 1字节 true/false
int System.Int32 4字节 -2,147,483,648 到 2,147,483,647
double System.Double 8字节 ±5.0×10⁻³²⁴ 到 ±1.7×10³⁰⁸
decimal System.Decimal 16字节 ±1.0×10⁻²⁸ 到 ±7.9×10²⁸

实际应用案例[编辑 | 编辑源代码]

数据库操作中的using关键字[编辑 | 编辑源代码]

public void InsertData(string name)
{
    // using确保资源释放
    using (var connection = new SqlConnection(connectionString))
    {
        var command = new SqlCommand("INSERT INTO Users (Name) VALUES (@name)", connection);
        command.Parameters.AddWithValue("@name", name);
        connection.Open();
        command.ExecuteNonQuery();
    } // 自动调用connection.Dispose()
}

LINQ中的查询关键字[编辑 | 编辑源代码]

var results = from p in products
              where p.Price > 100
              orderby p.Name descending
              select new { p.Name, p.Price };

数学公式示例[编辑 | 编辑源代码]

在C#中,某些关键字与数学概念相关:

  • checked/unchecked:控制算术溢出检查

abx2dx=x33|ab=b33a33

注意事项[编辑 | 编辑源代码]

  • 避免使用关键字作为标识符,如需使用需添加@前缀
  • 上下文关键字只在特定语法位置具有特殊含义
  • C#关键字区分大小写(全部为小写)
  • 不同C#版本可能引入新的上下文关键字

进阶主题[编辑 | 编辑源代码]

  • 关键字与IL代码的关系:了解关键字如何编译为中间语言
  • 自定义运算符重载:使用operator关键字
  • 反射中的关键字处理:通过typeof获取类型信息
  • 模式匹配扩展:C# 7.0+引入的is, switch增强功能