1.2C#语言的标识符(Identifier)和关键字(Keyword)

1.标识符

标识符必须以字母(A~Za~z)或 下划线(_) 开头,后续可以是任何字母(A~Za~z)、数字(0~9)和 下划线(_)。标识符区分大小写。

2.命名约定

标识符不应包含两个连续的__字符。这些名称是为编译器生成的标识符保留的。

命名空间:PascalCase.
项目名称:同命名空间。
枚举:PascalCase,无[Flags]特性用单数,有[Flags]特性用复数.
结构:PascalCase.
元组:camelCase.
类:PascalCase.
记录:PascalCase.
记录的参数(即记录的public属性):PascalCase.
接口:大写字母I + PascalCase.
委托:PascalCase.
变量:camelCase.
常量:const关键字 + 类型 + PascalCase.
枚举内常量:PascalCase.
public字段:PascalCase.
private或internal字段:单下划线_camelCase.
static private或internal字段:s_camelCase.
static private或internal线程字段:t_camelCase.
方法:PascalCase.
异步方法:PascalCase + Async.
属性:PascalCase.
索引器:this.
事件:PascalCase,即将发生的事件(现在进行时),已经发生的事件(过去式).
运算符:operator.
构造函数:PascalCase.
终结器:波浪号~PascalCase.
方法参数:camelCase.
类型参数:大写字母T + PascalCase.
特性:PascalCase + Attribute.
指针:referent类型* 指针变量.

3.关键字

关键字 是对编译器有特殊意义的预定义的保留标识符,除非以 @ 字符开头,否则不能用作标识符。

通用关键字是C#程序的任何部分保留的标识符,上下文关键字是仅在C#一部分程序上下文中有特殊含义,可以在相应上下文范围之外用作标识符。

通用关键字
    : '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'      | 'and'      | 'alias'      | 'ascending' | 'args async'
    | 'await'    | 'by'       | 'descending' | 'dynamic'   | 'equals'
    | 'from'     | 'get'      | 'global'     | 'group'     | 'init'
    | 'into'     | 'join'     | 'let'        | 'managed'   | 'nameof'
    | 'nint'     | 'not'      | 'notnull'    | 'nuint'     | 'on'
    | 'or'       | 'orderby'  | 'partial'    | 'record'    | 'remove'
    | 'select'   | 'set'      | 'unmanaged'  | 'value'     | 'var'   
    | 'when'     | 'where'    | 'with'       | 'yield'     ;

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/csharp/csharplang/7861.html

(0)
上一篇 2021年1月2日 02:22
下一篇 2021年1月3日 01:50

相关推荐

  • 2.9C#函数成员之构造函数(Constructor)

    构造函数的声明方式与方法相似,与所属结构或类同名,不过没有返回类型。 如果没有为结构或类提供实例构造函数,则会隐式自动提供无参数的实例构造函数,这时此结构或类可以被实例化。 不过,如果显式地使用 private 修饰符修饰无参数的空实例构造函数会清楚地表明该类不能被实例化。 1.构造函数分类 名称 …

    C#语言教程 2021年2月9日
    03990
  • 2.8C#函数成员之运算符(Operator)

    运算符声明 所有运算符都必须声明为 public 和 static。 隐式和显式运算符 implicit 或 explicit 关键字分别用于定义隐式转换或显式转换,定义转换的类型必须是该转换的源类型或目标类型,可用两种类型中的任何一种类型来定义两种用户定义类…

    C#语言教程 2021年2月8日
    01720
  • 3.12C#类型之记录结构(record struct)和记录类(record class)

    1.记录声明 声明记录结构(值类型)或记录类(引用类型)的语法与声明结构或类的语法相似,可使用位置参数或属性语法声明记录类型。 记录类型可以是不可变类型,也可以是可变类型,但记录类型的发明主要是为创建自定义不可变类型提供简洁的语法。 编译器会为记录的每个位置参数自动创建public自动实现的属性,如果生成的自动实现的属…

    C#语言教程 2021年3月12日
    05450

发表回复

登录后才能评论