计算机语言与人类语言一样,具有词汇结构。C#程序的源代码由标记组成。令牌是原子代码元素。在C#中,我们有注释、变量、文字、空格、运算符、定界符和关键字。
C#程序由Unicode字符集中的字符组成。
C#注释
注释被人类用来阐明源代码。C#中有三种类型的注释。单行注释、多行注释和XML注释。可以将XML注释提取到HTML文件中。
多行注释用/**/字符括起来。单行注释以两个正斜杠开头。
/* This is Program.cs Author: Jan Bodnar ZetCode 2022 */ // A C# statement Console.WriteLine("This is Comments program");
C#编译器忽略注释。
/* This is Program.cs /* Author: Jan Bodnar */ ZetCode 2022 */
评论不能嵌套;上面的代码无法编译。
C#空白
C#中的空格用于分隔源文件中的标记。它还用于提高源代码的可读性。
int i = 0;
有些地方需要空格。例如在int
关键字和变量名之间。在其他地方,空格是被禁止的。它们不能出现在变量标识符或语言关键字中。
int a=1; int b = 2; int c = 3;
标记之间的空间量与C#编译器无关。
C#变量
变量是一个包含值的标识符。在编程中,我们说我们给变量赋值。从技术上讲,变量是对存储值的计算机内存的引用。变量名称可以包含字母数字字符和下划线。标识符可以以字符或下划线开头。它不能以数字开头。
变量名区分大小写。这意味着Name
、name
和NAME
指的是三个不同的变量。变量名也不能匹配语言关键字。(事实上,如果我们在关键字前面加上@字符,我们可以使用关键字作为标识符。但这不是一个好的编程习惯。)
string name23; int _col; Date birth_date;
这些是有效的C#标识符。
string 23name; int %col; Date birth date;
这些是无效的C#标识符。
string name = "Robert"; string Name = "Julia"; Console.WriteLine(name); Console.WriteLine(Name);
标识符区分大小写。Name
和name
是两个不同的标识符。在C#语言的近亲VisualBasic中,这是不可能的。在这种语言中,变量名不区分大小写。
$ dotnet run Robert Julia
C#字面量
文字是一种类型的特定值的文本表示。文字类型包括布尔值、整数、浮点数、字符串、字符和日期。从技术上讲,文字将在编译时赋值,而变量将在运行时赋值。
int age = 29; string nationality = "Hungarian";
这里我们将两个文字分配给变量。数字29和字符串“Hungarian”是文字。
bool sng = true; string name = "James"; string job = null; double weight = 68.5; DateTime born = DateTime.Parse("November 12, 1987"); Console.WriteLine($"His name is {name}"); if (sng) { Console.WriteLine("He is single"); } else { Console.WriteLine("He is in a relationship"); } Console.WriteLine($"His job is {job}"); Console.WriteLine($"He weighs {weight} kilograms"); Console.WriteLine($"He was born in {born:yyyy}");
在上面的例子中,我们有一些文字。bool
文字可能具有值true
或false
。“James”是一个字符串文字。null
表示任何数据类型的默认值。数字23是一个Integer
字面量。数字68.5是浮点数。最后,1987年11月12日是日期。
$ dotnet run His name is James He is single His job is He weighs 68.5 kilograms He was born in 1987
C#运算符
运算符是用于对某些值执行操作的符号。运算符在表达式中用于描述涉及一个或多个操作数的操作。
+ - * / % ^ & | ! ~ = += -= *= /= %= ^= ++ -- == != < > &= >>= <<= >= <= || && >> << ?:
这是C#运算符的部分列表。我们将在本教程后面讨论运算符。
C#分隔符
分隔符是一个或多个字符的序列,用于指定纯文本或其他数据流中单独、独立区域之间的边界。
[ ] ( ) { } , : ;
string language = "C#";
双字符用于标记字符串的开始和结束。分号(;)字符用于结束每个C#语句。
Console.WriteLine("Today is {0}", DateTime.Today.ToString("M/d"));
圆括号(圆括号)用于标记方法签名。签名由方法参数组成。大括号用于表示评估值。
int[] array = new int[5] {1, 2, 3, 4, 5};
方括号[]
用于表示数组类型。它们还用于访问或修改数组元素。大括号{}
也用于初始化数组。大括号也用于变量插值或括起方法或类的主体。
int a, b, c;
逗号字符可用于在同一行代码中使用多个声明。
C#关键字
关键字是C#语言中的保留字。关键字用于在计算机程序中执行特定任务。例如,定义变量、重复任务或执行逻辑运算。
C#有很多关键字。关键字包括if
,else
,for
,while
,base
,false
、float
、catch
、this
等等。关键字在教程中逐步介绍。
for (int i = 0; i <= 5; i++) { Console.WriteLine(i); }
该示例使用了两个关键字:int
和for
。
C#约定
约定是程序员在编写源代码时遵循的最佳实践。每种语言都可以有自己的一套约定。惯例不是严格的规则;它们只是编写高质量代码的建议。我们提到了一些被许多C#程序员认可的约定。(通常也是其他程序员)。
- 类、接口和枚举以大写字母开头。
- 接口名称以I字母开头。
- 注释放在单独的行上,而不是在一行代码的结尾。
- 方法名称以大写字母开头。
- 每行只放置一个语句或声明。
- 标识符易于阅读
- 标识符以PascalCase编写,例如每个后续单词都以大写字母开头。
- 当同时使用public关键字和static关键字时。
Main
方法的参数名称是称为args。- 常量以大写形式书写。
- 代码块中的大括号另起一行。
在本文中,我们介绍了C#语言的基本词法结构。
列出所有C#教程。