C# 关键字和标识符
提示
- C# 关键字:关键字是程序中的预定义保留词,具有特定含义且不能作为标识符使用,例如
long
、int
。C# 共有 79 个关键字,除非加上@
前缀,否则不能用作标识符。 - 上下文关键字:C# 中还有 25 个上下文关键字,它们在特定程序上下文中有特殊含义,但在其他上下文中可以作为标识符,如
async
、await
。 - 标识符命名规则:标识符是赋予变量、方法等的名称,必须以字母、下划线或
@
开头,且不能使用关键字。标识符区分大小写,不能包含空格或特殊符号。
C# 关键字
关键字是程序中具有特殊含义的预定义保留词集。关键字的含义不能改变,也不能直接用作程序中的标识符。
例如,
long mobileNum;
这里,long
是一个关键字,而 mobileNum
是一个变量(标识符)。long
在 C# 中有特殊含义,即用于声明 long
类型的变量,这个功能不能更改。
同时,诸如 long
、int
、char
等关键字不能用作标识符。因此,我们不能有如下情况:
long long;
C# 总共有 79 个关键字。这些关键字都是小写的。以下是所有 C# 关键字的完整列表。
abstract | as | base |
break | byte | case |
char | checked | class |
continue | decimal | default |
do | double | else |
event | explicit | extern |
finally | fixed | float |
foreach | goto | if |
in | in (泛型修饰符) | int |
internal | is | lock |
namespace | new | null |
operator | out | out (泛型修饰符) |
params | private | protected |
readonly | ref | return |
sealed | short | sizeof |
static | string | struct |
this | throw | true |
typeof | uint | ulong |
unsafe | ushort | using |
void | volatile | while |
尽管关键字是保留词,但如果在前面加上 @
,则可以作为标识符使用。例如,
int @void;
上述语句将创建一个名为 @void
的 int
类型变量。
上下文关键字
除了常规关键字,C# 还有 25 个上下文关键字。上下文关键字在有限的程序上下文中具有特定含义,并且在该上下文之外可以用作标识符。它们在 C# 中不是保留词。
add | alias | ascending |
async | await | descending |
dynamic | from | get |
global | group | into |
join | let | orderby |
partial (类型) | partial (方法) | remove |
select | set | value |
var | when (过滤条件) | where (泛型类型约束) |
yield |
如果您有兴趣了解每个关键字的功能,建议您访问 C# 关键字(官方 C# 文档)。
C# 标识符
标识符是赋予诸如变量、方法、类等实体的名称。它们是程序中唯一标识一个元素的标记。例如,
int value;
这里,value
是变量的名称,因此它是一个标识符。保留关键字不能用作标识符,除非前面加上 @
前缀。例如,
int break;
这条语句将在编译时产生错误。
要了解更多关于变量的信息,请访问 C# 变量。
标识符命名规则]
- 标识符不能是 C# 关键字。
- 标识符必须以字母、下划线或
@
符号开头。标识符的剩余部分可以包含字母、数字和下划线符号。 - 不允许使用空格。也不能包含除字母、数字和下划线以外的符号。
- 标识符区分大小写。因此,
getName
、GetName
和getname
代表 3 个不同的标识符。
以下是一些有效和无效标识符的示例:
标识符 | 备注 |
---|---|
number | 有效 |
calculateMarks | 有效 |
hello$ | 无效(包含 $) |
name1 | 有效 |
@if | 有效(带 @ 前缀的关键字) |
if | 无效(C# 关键字) |
My name | 无效(包含空格) |
_hello_hi | 有效 |
示例:在程序中找出关键字和标识符的列表]
为了澄清这个概念,让我们在 C# Hello World 中编写的程序里找出关键字和标识符的列表。
using System;
namespace HelloWorld
{
class Hello
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
关键字 | 标识符 |
---|---|
using | System |
namespace | HelloWorld (命名空间) |
class | Hello (类) |
static | Main (方法) |
void | args |
string | Console |
WriteLine |
WriteLine
方法中的 "Hello World!" 是一个字符串字面量。