C# 语法结构

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

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

C# 注释

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

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

Program.cs

using System;

/*
    This is comments.cs 
    Author: Jan Bodnar 
    ZetCode 2019
*/

namespace Comments
{
    // Program starts here
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("This is Comments program");
        }
    }
}

C# 编译器将忽略注释。

/*
  This is comments.cs 
/*  Author: Jan Bodnar */
  ZetCode 2019
*/

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

C# 空白字符

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

int i = 0;

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

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

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

C# 变量

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

string name23;
int _col;
Date birth_date;

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

string 23name;
int %col;
Date birth date;

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

Program.cs

using System;

namespace Identifiers
{
    class Program
    {
        static void Main(string[] args)
        {
            string name = "Robert";
            string Name = "Julia";

            Console.WriteLine(name);
            Console.WriteLine(Name);   
        }
    }
}

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

$ dotnet run
Robert
Julia

这是程序输出。

C# 字面值

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

int age = 29;
string nationality = "Hungarian";

在这里,我们为变量分配了两个字面值。 数字 29 和字符串“匈牙利语”是字面值。

Program.cs

using System;

namespace Literals
{
    class Program
    {
        static void Main(string[] args)
        {
            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 {0}", name);

            if (sng) 
            {
                Console.WriteLine("He is single");
            } else
            { 
                Console.WriteLine("He is in a relationship");
            }

            Console.WriteLine("His job is {0}", job);
            Console.WriteLine("He weighs {0} kilograms", weight);
            Console.WriteLine("He was born in {0}", 
                string.Format("{0:yyyy}", born));
        }
    }
}    

在上面的示例中,我们有一些字面值。 bool字面值可能具有值truefalse。 “ 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# 包含丰富的关键字。 其中许多内容将在本教程中进行解释。 关键字包括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 字母开头。
  • 注释放在单独的行中,而不是在代码行的末尾。
  • 方法名称以大写字母开头。
  • 每行仅放置一个语句或声明。
  • 标识符易于阅读且有意义。
  • 标识符使用 PascalCase 编写,例如 随后的每个单词都以大写字母开头。
  • 同时使用 public 关键字和 static 关键字之前。
  • Main()方法的参数名称称为 args。
  • 常量以大写形式编写。
  • 代码块中的大括号从新行开始。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程