前言
正如之前我们创建的第一个C#控制台应用程序的Program.cs
所见,从代码上看上去,C#感觉和C++, Java非常相似,但更具备其独特的语法和特性。
在你开始接触C#的时候也许会感觉这些独特的语法和特性比较吃力。但当你不断深入学习并能熟练运用c#后,你会发现所使用的语法和代码结构是非常合理的,并且可以编写出非常易读的代码,而不需要花费太多精力。
C#约定
1.每条C#语句均以英文状态的分号结束
Console.ReadLine()
Console.ReadLine();
Console.ReadLine();
上面哪条语句是正确的呢?
可以将多条语句写在一行上,如:
x = y + 5; z = y + 2;
这种写法编译器不会报错,但为了程序代码的可读性,建议一条语句单独一行,而不建议一行写多条语句。
一个表达式也是一条语句,比如:
x++;
表达式将在后面的教程中介绍
2.C#是大小写敏感(即字母区分大小写)
console.ReadLine();
Console.readLine();
Console.readline();
Console.Readline();
Console.ReadLine();
请在控制台应用程序中健入以上内容,试一试哪条语句是正确的呢?
3.一个C#可执行程序只能同时指定一个程序入口点
一个C#可执行程序只能同时指定一个程序入口点。
3.1 什么是程序入口点?
程序入口点就是在程序启动时最开始要执行的地方。简单地说就是开发人员需要指定程序要从哪个地方开始执行。C#应用程序的入口方法为静态(static
)的Main()
方法,如我们前面创建的示例程序:
3.2 什么是可执行程序?
ConsoleApp1
就是一个可执行程序,编译后生成的是ConsoleApp1.exe
这个可执行文件。
ConsoleApp1
的程序入口点为Program.cs
中的Main
这个静态方法。
所有的可执行程序的入口方法都是静态的Main
方法,只是方法的参数有可能不一相同而已。
4. 忽略多余的空格
C#编译器在编译的时候会忽略掉多余的空格,不管这个空格是由空格符、回车符还是制表符产生的。这让你在编写C#代码的时候可以有更大的自己度去控制代码的格式。
图中标注的语句行包含了许多冗余的空格,这在C#语言的语法中是被允许,但编译器在编译的时候会自动将多余的空格移除掉。
或者你还可以使用Visual Studio的格式化命令(Ctrl+K,Ctrl+D或者Ctrl+K,Ctrl+F)将这些多余的空格格式化。
C#代码是由多条语句组成的,每条语句均以分号结束。通常情况下,为了程序的可读性,一条C#语句占一行,写完成一条后按回车写下一条语句,但一条语句跨行写也是可以的,编译器也是认可以,比如在一种语句很长的情况下需要分多行写,这时可以使用回车为此条语句进行换行。编译器在编译时会自动忽略这些换行符。
5. 格式化与代码缩进
5.1 格式化代码
C#语言代码编写中,为了代码的美观以及可读性,每个块的代码是有一定的缩进的,Visual Studio也提供了默认的C#代码格式化工具、命令,上文已经提到过,分别为:Ctrl+K,Ctrl+D
和Ctrl+K,Ctrl+F
,其中前者是格式化当前打开的整个文档,而后者是格式化当前选中的文档内容。
5.2 代码缩进
缩进:通常以Tab键进行缩进,一个Tab制表符的大小占4个字符位,这些格式化参数是可以通过Visual Studio的选项进行设置的。
上图中数字标注均为缩进,每个块之间缩进为设置为了一个制表符的大小(4个字符位)
6. 代码块
在C#编程语言中,被一对大括号({}
)包裹的代码称为一个代码块,代码块的目的是为了让代码层次清晰,结构分明。定义或者声明如:命名空间,类,接口,方法,结构时必须有代码块包裹,如图:
包裹代码的代码块大括号必须成对出现,即在一个代码块中,不能只出现左括号({
)或者只出现右括号(}
),下图的代码块未关闭,因此,Visual Studio编译器会报错:
请仔细观察上图中是哪个代码块未关闭呢?
7. 语句注释
7.1 为什么要使用注释?
- 暂时不需要这行/段代码,但又不想删除,可能以后会还原
- 对一行/段代码的作用进行注解
- 对类,类成员进行文档摘要说明,方便在调用时快速查看类,类成员的说明
7.2 注释的种类
- 双斜杠:注释单行
- /**/ :注释单行或者多行
- ///summary 文档摘要
- //:TODO
代码注释在实际编码中的示例如下图:
类、成员添加文档摘要
如果需要给C#的类或者其成员添加文档摘要,可以使用如下标识块:
/// <summary>
/// 摘要内容
/// </summary>
注意:将这个标识块(summary)放在类或者成员的紧挨着的上一行即可(中间不能隔行)
代码结构和构成
在了解了C#的基本语法和约定之后,对照ConsoleApp1这个项目的Program.cs
为实例,详细讲解C#的代码结构,如下:
using System;
namespace ConsoleApp1
{
/// <summary>
/// 类名
/// </summary>
class Program
{
/// <summary>
/// 程序入口方法
/// </summary>
/// <param name="args">入口方法的参数</param>
static void Main(string[] args)
{
// 向控制台输出:你好,欢迎来到C#的世界
Console.WriteLine("你好,欢迎来到C#的世界");
/* 你也可以写成如下的语句 */
//System.Console.WriteLine("你好,欢迎来到C#的世界");
/*
* 等待用户按键
*/
Console.ReadLine();
// 你也可以使用如下的方法来等待用户的按键
//Console.ReadKey();
}
}
}
图解如下:
1.使用
using
关键字引入命名空间。
2.声明一个名为ConsoleApp1
的命名空间。
3.声明一个名为Program
的类。
4.声明一个名为Main
的方法(此方法作为程序的入口点),此方法使用static
修饰,表示是一个静态方法,void
关键字表示这个方法没有返回值。注意:一个应用程序只能有一个静态的Main
方法。
5.指定一个string
的数据类型。
6.声明name1
作为变量名。
7.将Rector
设置为变量name1
的值。
8.调用Console.WriteLine()
方法,向控制台输出文本
学到这里,你可能还不能完全理解以上所介绍C#知识点。你完全不用担心也不需要知道示例中每条语句的具体含义。因为本节我们主要是了解和认识C#的基本语法,这些知识点会在后续的教程中不断地提及和强化。随着学习的深入和不断地使用,自然而然就熟悉了。
学习任何一门语言都需要一个过程,要不断地了解知识点然后动手编写代码练习,没有捷径可走。就像小孩学习走路,多摔几个跟头自然而然就会了。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册