原文: https://zetcode.com/lang/csharp/lexis/

像人类语言一样,计算机语言也具有词汇结构。 C# 程序的源代码由令牌组成。 令牌是原子代码元素。 在 C# 中,我们具有注释,变量,字面值,空格,运算符,定界符和关键字。

C# 程序由 Unicode 字符集中的字符组成。

C# 注释

注释被人类用来阐明源代码。 C# 中有三种类型的注释。 单行注释,多行注释和 XML 注释。 可以将 XML 注释提取到 HTML 文件。

多行注释用/* */字符括起来。 单行注释以两个正斜杠开头。

Program.cs

  1. using System;
  2. /*
  3. This is comments.cs
  4. Author: Jan Bodnar
  5. ZetCode 2019
  6. */
  7. namespace Comments
  8. {
  9. // Program starts here
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. Console.WriteLine("This is Comments program");
  15. }
  16. }
  17. }

C# 编译器将忽略注释。

  1. /*
  2. This is comments.cs
  3. /* Author: Jan Bodnar */
  4. ZetCode 2019
  5. */

注释不能嵌套。 上面的代码无法编译。

C# 空白字符

C# 中的空格字符用于分隔源文件中的标记。 它还用于提高源代码的可读性。

  1. int i = 0;

在某些地方需要空格。 例如,在int关键字和变量名之间。 在其他地方,禁止使用空格。 它们不能出现在变量标识符或语言关键字中。

  1. int a=1;
  2. int b = 2;
  3. int c = 3;

标记之间放置的空间量与 C# 编译器无关。

C# 变量

变量是保存值的标识符。 在编程中,我们说我们为变量分配了一个值。 从技术上讲,变量是对存储值的计算机内存的引用。 变量名称可以包含字母数字字符和下划线。 标识符可以以字符或下划线开头。 它可能不能以数字开头。 变量名称区分大小写。 这意味着NamenameNAME引用了三个不同的变量。 变量名称也不能与语言关键字匹配。 (实际上,如果在关键字前面加上@字符,则可以使用关键字作为标识符。但这不是一个好的编程习惯。)

  1. string name23;
  2. int _col;
  3. Date birth_date;

这些是有效的 C# 标识符。

  1. string 23name;
  2. int %col;
  3. Date birth date;

这些是无效的 C# 标识符。

Program.cs

  1. using System;
  2. namespace Identifiers
  3. {
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. string name = "Robert";
  9. string Name = "Julia";
  10. Console.WriteLine(name);
  11. Console.WriteLine(Name);
  12. }
  13. }
  14. }

标识符区分大小写。 Namename是两个不同的标识符。 在 Visual Basic(C# 语言的表亲)中,这是不可能的。 用这种语言,变量名不区分大小写。

  1. $ dotnet run
  2. Robert
  3. Julia

这是程序输出。

C# 字面值

字面值是类型的特定值的字面值表示。 字面值类型包括布尔值,整数,浮点数,字符串,字符和日期。 从技术上讲,字面值将在编译时分配一个值,而变量将在运行时分配。

  1. int age = 29;
  2. string nationality = "Hungarian";

在这里,我们为变量分配了两个字面值。 数字 29 和字符串"Hungarian"是字面值。

Program.cs

  1. using System;
  2. namespace Literals
  3. {
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. bool sng = true;
  9. string name = "James";
  10. string job = null;
  11. double weight = 68.5;
  12. DateTime born = DateTime.Parse("November 12, 1987");
  13. Console.WriteLine("His name is {0}", name);
  14. if (sng)
  15. {
  16. Console.WriteLine("He is single");
  17. } else
  18. {
  19. Console.WriteLine("He is in a relationship");
  20. }
  21. Console.WriteLine("His job is {0}", job);
  22. Console.WriteLine("He weighs {0} kilograms", weight);
  23. Console.WriteLine("He was born in {0}",
  24. string.Format("{0:yyyy}", born));
  25. }
  26. }
  27. }

在上面的示例中,我们有一些字面值。 bool字面值可能具有值truefalse"James"是字符串字面值。 null代表任何数据类型的默认值。 数字 23 是Integer字面值。 数字 68.5 是浮点字面值。 最后,1987 年 11 月 12 日是日期字面值。

  1. $ dotnet run
  2. His name is James
  3. He is single
  4. His job is
  5. He weighs 68.5 kilograms
  6. He was born in 1987

这是程序的输出。

C# 运算符

运算符是用于对某个值执行操作的符号。 表达式中使用运算符来描述涉及一个或多个操作数的运算。

  1. + - * / % ^ & | ! ~
  2. = += -= *= /= %= ^= ++ --
  3. == != < > &= >>= <<= >= <=
  4. || && >> << ?:

这是 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# 包含丰富的关键字。 其中许多内容将在本教程中进行解释。 关键字包括ifelseforwhilebasefalsefloatcatchthis等。

Program.cs

using System;

namespace Keywords
{
    class Program
    {
        static void Main(string[] args)
        {
            int i;

            for(i = 0; i<= 5; i++)
            {
                Console.WriteLine(i);
            }
        }
    }
}

在上面的示例中,我们使用了几个关键字。 usingpublicstaticvoidintfor是 C# 关键字。

C# 约定

约定是程序员在编写源代码时遵循的最佳实践。 每种语言可以有自己的约定集。 约定不是严格的规则; 它们只是编写高质量代码的建议。 我们提到了许多 C# 程序员都认可的一些约定。 (并且通常也被其他程序员使用)。

  • 类,接口和枚举以大写字母开头。
  • 接口名称以 I 字母开头。
  • 注释放在单独的行中,而不是在代码行的末尾。
  • 方法名称以大写字母开头。
  • 每行仅放置一个语句或声明。
  • 标识符易于阅读且有意义。
  • 标识符使用 Pascal 大小写编写,例如随后的每个单词都以大写字母开头。
  • 同时使用public关键字和static关键字之前。
  • Main()方法的参数名称称为args
  • 常量以大写形式编写。
  • 代码块中的大括号从新行开始。

在 C# 教程的这一部分中,我们介绍了 C# 语言的基本词汇。