C Sharp 关键字
外观
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
:同一程序集或派生类可访问
类型系统关键字[编辑 | 编辑源代码]
关键字 | 对应.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
:控制算术溢出检查
注意事项[编辑 | 编辑源代码]
- 避免使用关键字作为标识符,如需使用需添加
@
前缀 - 上下文关键字只在特定语法位置具有特殊含义
- C#关键字区分大小写(全部为小写)
- 不同C#版本可能引入新的上下文关键字
进阶主题[编辑 | 编辑源代码]
- 关键字与IL代码的关系:了解关键字如何编译为中间语言
- 自定义运算符重载:使用
operator
关键字 - 反射中的关键字处理:通过
typeof
获取类型信息 - 模式匹配扩展:C# 7.0+引入的
is
,switch
增强功能