C#关键字是编译器预先定义的保留标识符,不能用作变量名、方法名等用户自定义的标识符,它们在语法层面支撑起整个C#程序的运行逻辑。不同的关键字对应不同的功能,从基础类型定义到程序流程控制,再到内存管理相关操作,都依赖于这些关键字的合理使用。

C#关键字的分类介绍
类型相关关键字
这类关键字用于声明变量、方法返回值的类型,是C#类型系统的基础组成部分。
- int:声明32位有符号整数类型,属于值类型,占用4字节内存空间,取值范围是-2147483648到2147483647。
- string:声明字符串类型,属于引用类型,用于存储文本数据,字符串内容是不可变的。
- bool:声明布尔类型,取值只能是true或者false,常用于条件判断场景。
- class:用于声明类,类是引用类型的核心载体,可以包含字段、方法、属性等成员。
- struct:用于声明结构,属于值类型,适合表示轻量级的、不可变的数据结构。
访问控制关键字
这类关键字用于限定类、方法、字段等成员的访问权限,实现面向对象的封装特性。
| 关键字 | 访问权限说明 |
|---|---|
| public | 公有权限,当前程序集内外都可以访问该成员 |
| private | 私有权限,只能在声明该成员的类内部访问 |
| protected | 受保护权限,只能在当前类或者派生类中访问 |
| internal | 内部权限,只能在当前程序集内访问该成员 |
| protected internal | 受保护内部权限,当前程序集内或者派生类中可以访问 |
流程控制关键字
这类关键字用于控制程序的执行流程,实现分支、循环等逻辑。
- if/else:实现条件分支逻辑,当if后的条件为true时执行对应代码块,否则执行else后的代码块。
- switch/case:多条件分支逻辑,根据表达式的值匹配不同的case分支执行。
- for:计数循环,适合已知循环次数的场景,包含初始化、条件判断、迭代三个部分。
- while:条件循环,只要条件为true就持续执行循环体。
- break:跳出当前循环或者switch分支。
- continue:跳过当前循环体的剩余部分,直接进入下一次循环。
其他常用关键字
- var:隐式类型声明,编译器会根据赋值自动推断变量类型,变量类型在编译时确定。
- new:用于创建对象实例,或者隐藏基类的成员。
- return:从方法中返回结果,并且终止方法的执行。
- using:引入命名空间,或者定义资源的作用域,确保资源在使用后自动释放。
- static:声明静态成员,静态成员属于类型本身,不需要创建实例就可以访问。
关键字使用示例
下面通过一段完整的代码示例,展示部分常用关键字的实际用法:
using System;
namespace KeywordDemo
{
// class关键字声明类
public class Student
{
// private关键字声明私有字段
private string name;
// public关键字声明公有属性
public int Age { get; set; }
// 构造函数,使用this关键字指代当前实例
public Student(string name, int age)
{
this.name = name;
this.Age = age;
}
// public关键字声明公有方法
public void PrintInfo()
{
// if关键字实现条件判断
if (Age >= 18)
{
Console.WriteLine($"学生姓名:{name},年龄:{Age},已成年");
}
else
{
Console.WriteLine($"学生姓名:{name},年龄:{Age},未成年");
}
}
// static关键字声明静态方法
public static void StaticMethod()
{
Console.WriteLine("这是静态方法,无需创建实例即可调用");
}
}
class Program
{
static void Main(string[] args)
{
// var关键字隐式声明变量
var student = new Student("张三", 20);
student.PrintInfo();
// 调用静态方法
Student.StaticMethod();
// for关键字实现循环
for (int i = 0; i < 3; i++)
{
Console.WriteLine($"循环次数:{i}");
}
}
}
}
关键字使用注意事项
首先,C#的关键字都是小写形式,部分关键字前面加上@符号可以作为标识符使用,比如@class可以作为一个变量名,但这种用法不推荐,会降低代码可读性。
其次,不同版本C#会新增一些关键字,比如C# 7.0新增的tuple相关关键字,使用时需要注意项目的C#语言版本是否支持。
最后,不要滥用关键字,比如不要随意使用static关键字声明成员,避免造成内存占用过高或者代码耦合度上升的问题。合理搭配不同关键字的使用,才能写出规范、高效的C#代码。