C#入门到精通系列课程——第2章编写C#程序
◆本章内容
(1)熟悉Visual Studio 2017开发环境
(2)编写第一个C#程序
(3)C#程序结构预览
(4)程序编写规范
(5)难点解答
◆本章简述
要学习C#编程,必然要熟悉C#程序的结构,而为了能够养成一个良好的编码习惯,在学习C#之初,熟悉常用的C#程序编写规范也是非常重要的。本章将详细介绍如何编写一个C#程序,以及C#程序的基本结构;另外,还对C#程序的常用编写规范进行介绍。
◆知识框架
2.1 熟悉Visual Studio 2017开发环境
本节对Visual Studio 2017开发环境中的菜单栏、工具栏、解决方案资源管理器、“工具箱”窗口、“属性”窗口和“错误列表”窗口等进行介绍。
2.1.1 创建Windows控制台应用项目
初期学习C#语法和面向对象编程主要在Windows控制台应用程序环境下完成,下面将按步骤介绍控制台应用程序的创建过程。
创建控制台应用程序的步骤如下:
(1)选择“开始”→“所有程序”→Visual Studio 2017, 进入Visual Studio 2017开发环境起始页,如图2.1所示。
(2)启动Visual Studio 2017开发环境之后,可以通过两种方法创建项目:一种是在菜单栏中选择“文件”→“新建”→“项目”菜单项,如图2.2所示;另一种是在“起始页”中选择“新建项目”板块中的相应命令,如图2.3所示。
选择其中一种方法创建项目,弹出如图2.4所示的“新建项目”对话框。
说明:在图2.4中选择“Windows 窗体应用(.NET Framework)”,即可创建Windows的窗体程序。
(3)选择要使用的.NET框架和“控制台应用(NET Framework)”后,用户可以对所要创建的控制台应用进行命名、选择存放位置、是否创建解决方案目录等设定(在命名时可以使用用户自定义的名称,也可以使用默认名ConsolcAppl:用户可以单击“浏览”按钮设置项目存放的位置:需要注意的是,解决方案名称与项目名称一定要统一),然后单击“确定”按钮,完成控制台应用程序的创建。
2.1.2 菜单栏
菜单栏显示所有可用的Visual Studio 2017命令,除了“文件”“编辑”“视图”“窗口”和“帮助”菜单之外,还提供编程专用的功能菜单,如“项目”“生成”“调试”“工具”和“测试”等,如图2.5所示。
每个菜单项中都包含若干个菜单命令,分别执行不同的操作,例如, “调试”菜单包括调试程序的各种命令,如“开始调试”“开始执行”和“新建断点”等,如图2.6所示。
2.1.3 工具栏
为了操作更方便、快捷,菜单项中常用的命令按功能分组分别放入相应的工具栏中。通过工具栏可以快速访问常用的菜单命令。常用的工具栏有标准工具栏和调试工具栏,下面分别进行介绍。
(1) 标准工具栏包括大多数常用的命令按钮,如新建项目、添加新项、打开文件、保存、全部保存等。标准工具栏如图2.7所示。
(2)调试工具栏包括对应用程序进行调试的快捷按钮,如图2.8 所示。
说明:在调试程序或运行程序的过程中,通常可以使用以下4种快捷键来操作:
(1)按下<F5>快捷键实现调试运行程序;
(2)按下<Ctrl+F5> 快捷键实现不调试运行程序;
(3)按下<F11>快捷键实现逐语句调试程序;
(4)按下<F10>快捷键实现逐过程调试程序。
2.1.4 “工具箱”窗口
工具箱是Visual Studio 2017的重要工具,每一个开发人员都必须对这个工具非常熟悉。工具箱提供了进行C#程序开发所必需的控件。通过工具箱,开发人员可以方便地进行可视化的窗体设计,既简化了程序设计的工作量,又提高了工作效率。根据控件功能的不同,将工具箱划分为10个栏目,如图2.9所示。
说明: “工具箱”窗口在Windows窗体应用程序或者ASP.NET网站应用程序中才会显示,在控制台应用程序中没有“工具箱”窗口,图2.9中显示的是Windows窗体应用程序中的“工具箱”窗口。
单击某个栏目,显示该栏目下的所有控件,如图2.10所示。当需要某个控件时,可以通过双击所需要的控件直接将控件加载到Windows窗体中,也可以先单击选择需要的控件,再将其拖动到Windows窗体上。
2.1.5 “属性”窗口
“属性”窗口是VisualStudio2017中另一个重要的工具,该窗口中提供了简单的属性修改方式。Windows窗体中的各个控件属性都可以在“属性”窗口设置完成。“属性”窗口不仅提供了属性的设置及修改功能,还提供了事件的管理功能,可以管理控件的事件,方便在编程时对事件进行处理。
另外,“属性”窗口采用了两种方式管理属性和事件,分别为按分类方式和按字母顺序方式。可以根据自己的习惯采用不同的方式。该窗口的下方还有简单的中文说明,方便开发人员对控件的属性进行操作和修改,“属性”窗口的左侧是属性名称,相对应的右侧是属性值。“属性”窗口如图2.11所示。
2.1.6 “错误列表”窗口
“错误列表”窗口为代码中的错误提供了即时的提示和可能的解决方法。例如,当某句代码结束忘记了输入分号时,在错误列表中会显示如图2.12所示的错误。错误列表就像是一个错误提示器, 它可以将程序中的错误及时提示给开发人员,并可以通过提示信息找到相应的错误代码。
说明:双击错误列表中的某项,Visual Studio 2017开发环境会自动定位到发生错误的代码上。
2.1.7 “代码和文本编辑器”窗口
占据IDE大部分的“代码和文本编辑器”窗口显示了源(代码)文件的内容。编辑含有多个文件的项目时,每个源文件都有自己的“标签”,标签显示的是文件名。单击标签,即可在“代码和文本编辑器”中显示对应的源文件。如图2.13
2.1.8 解决方案资源管理器
解决方案资源管理器(如图2.14所示)提供了项目及文件的视图,并且提供对项目和文件相关命令的便捷访问。与此窗口关联的工具栏提供了适用于列表中突出显示项的常用命令。若要访问解决方案资源管理器,可以在菜单栏中选择“视图”→“解决方案资源管理器”菜单打开。
“解决方案资源管理器”显示了项目相关文件的名称以及其他内容。双击文件名即可在“代码和文本编辑器”中显示该文件的内容。
写代码之前,先了解一下“解决方案资源管理器”列出的文件,它们是作为项目的一部分由Visual Studio 2017自动创建的。
●解决方案“ConsoleApp1”
解决方案文件位于最顶级,每个应用程序都有一个。一个解决方案可以包含一个或多个项目,Visual Studio 2017利用解决方案文件组织项目。解决方案文件名为“解决方案名称.sln”。
●项目“ConsoleApp1”
C#项目文件。每个项目文件都引用一个或多个包含项目源代码以及其他内容(比如图片)的文件。一个项目的所有源代码都必须使用相同的编程语言。项目文件名为“项目名称.csproj”
●Properties
这是ConsoleApp1项目中的一个文件夹。 展开会发现AssemblyInfo.cs文件。AssemblyInfo.cs 是用于为程序添加“特性”(atribute)的特殊文件,比如作者姓名和写程序的日期等。还可利用特性修改程序运行方式。
●引用
该文件夹包含对已编译好的代码库的引用。C#代码编译时会转换成库,并获得唯一名称。Microsoft.NET Framework将这种库称为程序集(assembly)。开发人员利用程序集打包自己开发的有用功能,并分发给其他程序员供其使用。展开“引用”文件夹会看到Visual Studio 2017在项目中添加的一组默认程序集引用。利用这些程序集可访问.NET Framework的大量常用功能。
●App.config
应用程序配置文件。由于可选,所以并非肯定存在。可在其中指定设置,让应用程序在运行时修改其行为,比如修改运行应用程序的.NET Framework版本。
●Program.cs
C#源代码文件。项目最初创建时,“代码和文本编辑器”显示的就是该文件,稍后要在该文件中为控制台应用程序编写代码。它包含Visual Studio2017自动生成的一些代码,稍后将详细讨论。
2.2 编写第一个C#程序
在大多数编程语言中,编写的第一个程序通常都是输出“HelloWorld”,这里将使用VisualStudio2017和C#语言来编写这个程序。使用Visual Studio 2017开发C#程序的基本步骤,如图2.15所示。
(1)按2.1.1节内容中的步骤创建一个名为“Hello_World”的控制台应用程序。
(2)控制台应用程序创建完成后,会自动打开Program.cs文件,Program.cs文件定义了Program 类,其中包含Main方法。C#的所有可执行代码都必须在方法中定义,而方法必须从属于类或结构(将在后期章节详细讲解),在该文件的Main方法中输入代码,具体代码如下:
代码注解:
(1)第1行代码是自动生成的Main方法,用来作为程序的入口方法,每一个C#程序都必须有一个Main方法。
必须像本例的Program类那样把它定义成静态方法,否则应用程序运行时.NET Framework可能不把它视为起点(将在后期章节详细讲解)。
(2)第3行代码中的Console.WriteLine方法主要用来向控制台中输出内容。
(3)第4行代码中的Console.ReadLine方法主要用来获取控制台中的输出,这里用来将控制台窗体固定到桌面上。
代码编写完成后,单击Visual Studio 2017开发环境工具栏中口启动图标按钮,运行该程序,效果如图2.16所示。
在上面的代码中,使用C#输出了开发人员进入“编程世界”后遇到的一个最经典语句“Hello World",下面通过一个实例讲解如何在C#中输出中文内容。
2.2.1 实例01:输出“人因梦想而伟大”
创建一个控制台应用程序,使用Console.WriteLine方法输出小米董事长雷军的经典语录“人因梦想而伟大”,完整代码如下:
代码注解:
(1)第1行到第4行代码是自动生成的代码,用来引用默认的命名空间。
(2)第6行是自动生成的命名空间,该命名空间的名称默认与创建的项目名称相同,开发人员可以手动修改。
(3)第8行代码是自动生成的一个Program类, 该类是C#程序的启动类,类的名称可以手动修改。程序运行效果如图2.17所示。
2.2.2 拓展训练
一、在控制台应用程序中输出马云在阿里巴巴上市时说的一句经典语录“梦想还是要有的,万一实现了呢!”。
二、在控制台中输出一个情人节快乐图案,程序运行结果如图2.5所示。
2.3 C#程序结构预览
在上一节中编写的第一个C#程序,其完整代码效果如图2.19所示。
从图2.19中可以看出,一个C#程序总体可以分为命名空间、类、关键字、标识符、Main 方法、C#语句和注释等。本节将分别对C#程序的各个组成部分进行详细讲解。
2.3.1 命名空间
在Visual Studio开发环境中创建项目时,会自动生成一个与项目名称相同的命名空间,例如,在2.2节中创建“Hello_World”项目时,会自动生成一个名称为“Hello_World”的命名空间,如图2.20所示。
命名空间在C#中起到组织程序的作用,正如图2.7所示,在C#中定义命名空间时,需要使用namespace关键字,其语法如下:
namespace命名空间名
说明:开发人员一般不用自定义命名空间,因为在创建项目或者创建类文件时,Visual Studio开发环境会自动生成一个命名空间。
命名空间既用作程序的“内部”组织系统,也用作向“外部”公开的组织系统(即一种向其他程序公开自己拥有的程序元素的方法)。如果要调用某个命名空间中的类或者方法,需要先使用using指令引入命名空间,这样,就可以直接使用该命名空间中所包含的成员(包括类及类中的属性、方法等)。using指令的基本形式为:
using命名空间名;
说明: C#中的命名空间就好像一个存储了不同类型物品的仓库,而using指令像一把钥匙,命名空间的名称就好比仓库的名称,用户可以通过钥匙打开指定名称的仓库,然后便可以从仓库中获取所需的物品,其示意图如图2.21所示。
例如,定义一个名称为Demo的命名空间,代码如下:
定义完命名空间后,如果要使用命名空间中所包含的类,需要使用using引用命名空间,例如,使用using引用Demo命名空间的代码如下:
常见错误:如果在使用指定命名空间中的类时,没有使用using引用命名空间,如下面代码:
则会出现如图2.22所示的错误提示信息。
要改正以上代码,可以直接在命名空间区域使用using引用Demo命名空间,代码如下:
★多学两招: 使用完全限定名称。在使用命名空间中的类时,如果不想用using指令引用命名空间,可以在代码中使用命名空间调用其中的类,例如,直接使用Demo命名空间调用其中的Operation类,代码如下:
2.3.2 类
C#程序的主要功能代码都是在类中实现的,类是一种数据结构,它可以封装数据成员、方法成员和其他的类。因此,类是C#语言的核心和基本构成模块。C#支持自定义类,使用C#编程就是编写自己的类来描述实际需要解决的问题。
说明:如果把命名空间比作一个医院,类就相当于该医院的各个科室,如内科、骨科、泌尿科、眼科等,在各科室中都有自己的工作方法,相当于在类中定义的变量、方法等。命名空间与类的关系示意图如图2.23所示。
使用类之前都必须先进行声明,一个类一旦被声明,就可以作为一种新的类型来使用,在C#中通过使用class关键字来声明类,声明语法如下:
class [类名]
{
[类中的代码]
}
说明:声明类时,还可以指定类的修饰符和其要继承的基类或者接口等信息,这里只要知道如何声明一个最基本的类即可,关于类的内容,将会后面章节进行详细讲解。
上面的语法中,在命名类的名称时,最好能够体现类的含义或者用途,而且类名一般采用第一个字母大写的名词,也可以采用多个词构成的组合词。
例如,声明一个汽车类,命名为Car,该类没有任何意义,只用于演示如何声明一个类,代码如下:
2.3.3 关键字与标识符
1.关键字
关键字是C#语言中已经被赋予特定意义的一些单词,开发程序时,不可以把这些关键字作为命名空间、类、方法或者属性等来使用。在前面编写的程序中看到的using、namespace、 class、static和void等都是关键字。C#语言中的常用关键字如图2.24所示。
常见错误:如果在开发程序时,使用C#中的关键字作为命名空间、类、方法或者属性等的名称,例如下面代码使用关键字void作为类的名称:
则会出现如图2.25所示的错误提示信息。
2.标识符
标识符可以简单地理解为一个名字,比如每个人都有自己的名字,它主要用来标识类名、变量方法名、属性名、数组名等各种成员。
C#语言标识符命名规则如下:
(1)由任意顺序的字母、下划线(_ )和数字组成。
(2)第一个字符不能是数字。
(3)不能是C#中的保留关键字。
下面是合法的标识符:
下面是非法标识符:
注意: C# 中标识符中不能包含#、%或者$等特殊字符。
在C#语言中,标识符中的字母是严格区分大小写的,两个同样的单词,如果大小写格式不一样,所代表的意义是完全不同的。例如,下面3个变量是完全独立、毫无关系的,就像3个相貌相似的人,实际上彼此之间都是独立的个体。
说明:在C#语言中允许使用汉字作为标识符,如“class运算类”,在程序运行时并不会出现错误,但建议读者尽量不要使用汉字作为标识符。
2.3.4 Main 方法
在Visual Studio开发环境中创建控制台应用程序后,会自动生成一个 Program.cs文件,该文件有一个默认的Main方法,代码如下:
每一个C#程序中都必须包含一个Main方法,它是类体中的主方法,也叫入口方法,可以说是激活整个程序的开关。Main 方法从“{”开始,至“}”结束。static 和void分别是Main方法的静态修饰符和返回值修饰符,C#程序中的Main方法必须声明为static,并且区分大小写。
常见错误:如果将Main方法前面的static关键字删除,则程序会在运行时出现如图2.26所示的错误提示信息。
Main方法一般都是创建项目时自动生成的,不用开发人员手动编写或者修改,如果需要修改,则需要注意以下3个方面:
◆Main方法在类或结构内声明,它必须是静态(static)的,而且不应该是公用(public) 的。
◆Main的返回类型有两种:void或int.
◆Main方法可以包含命令行参数string[]args,也可以不包括。
根据以上3个注意事项,可以总结出,Main方法可以有以下4种声明方式:
static void Main(string[] args){}
static void Main(){}
static int Main(string[] args){}
static int Main(){}
★多学两招:通常Main方法中不写具体逻辑代码,只用作类实例化和方法调用。这个过程就好比手机来电话了,只需要按“接通”键就可以通话,而不需要考虑手机通过怎样的信号转换将电磁信号转化成声音。这样的代码简洁明了,容易维护。养成良好的编码习惯,可以让程序员的工作事半功倍。
2.3.5 C#语句
语句是构造所有C#程序的基本单位,使用C#语句可以声明变量、常量、调用方法、创建对象或执行任何逻辑操作,C#语句以分号终止。
例如,在Hello World程序中输出“Hello World”字符串和定位控制台的代码就是C#语句:
上面的代码是两条最基本的C#语句,用来在控制台窗口中输出和读取内容,它们都用到了Console类。Console类表示控制台应用程序的标准输入流、输出流和错误流,该类中包含很多的方法,但与输入输出相关的方法主要有4个,如图2.27所示。
其中,Console.Read方法和Console.ReadLine方法用来从控制台读入,它们的使用区别如下:
◆Console.Read 方法:返回值为int类型,只能记录int类型的数据。
◆Console.ReadLine方法:返回值为string类型,可以将控制台中输入的任何类型数据存储为字符串类型数据。
★多学两招:在开发控制台应用程序时,经常使用Console.Read方法或者Console.ReadLine 方法固定控制台窗体。
Console.Write方法和Console.WriteLine方法用来向控制台输出,它们的使用区别如下:
◆Console.Write 方法:输出后不换行。
例如,以下是使用Console.Write方法输出“Hello World”字符串,效果如图2.28所示。
◆Console.WriteLine 方法:输出后换行。
例如,以下是使用Console.WriteLine方法输出“Hello World"字符串,效果如图2.29所示。
注意: C#代码中所有的字母、数字、括号以及标点符号均为英文输入法状态下的半角符号,而不能是中文输入法或者英文输入法状态下的全角符号。例如,图2.30为使用中文输入法的分号引起的错误提示。
2.3.6 注释
注释是在编译程序时不执行的代码或文字,其主要功能是对某行或某段代码进行说明,方便代码的理解与维护,或者在调试程序时,将某行或某段代码设置为无效代码。常用的注释主要有行注释和块注释两种,下面分别进行简单介绍。
说明:注释就像是超市中各商品下面的价格标签,对商品的名称、价格、产地等信息进行说明,如图2.31所示;而程序中,注释的基本作用是描述代码的作用,告诉别人你的代码要实现什么功能。
1.行注释
行注释是以符号“//”开头,其后面是注释的内容。例如,在Hello World程序中使用行注释,解释每一行代码的作用,代码如下:
注意:注释可以出现在代码的任意位置,但是不能分隔关键字和标识符。例如,下面的代码注释是错误的:
2.块注释
如果注释的行数较少,一般使用行注释。对于连续多行的大段注释,则使用块注释,块注释通常以“/*”标记开始,以“*/”标记结束,注释的内容放在它们之间。
例如,在HelloWorld程序中使用块注释将输出HelloWorld字符串和定位控制台窗体的C#语句注释为无效代码,代码如下:
★多学两招:块注释通常用来为类文件、类或者方法等添加版权、功能等信息,例如,用块注释为Program.cs 类添加版权、功能及修改日志等信息。
2.3.7 实例02:输出软件启动页
通过以上内容的讲解,我们熟悉了C#程序的基本组成,下面通过一个实例讲解如何编写一个完整的C#程序。
使用Visual Studio 2017开发环境创建一个控制台应用程序,然后使用Console.WriteLine方法在控制台中模拟输出“编程词典(珍藏版)”软件的启动页。代码如下:
完成以上操作后,单击Visual Studio 2017开发环境工具栏中图标按钮,即可运行该程序。程序运行结果如图2.32所示。
2.3.8 拓展训练
一、在控制台应用程序中模拟以下场景:
计算机先输出:欢迎使用XXX充值业务,请输入充值金额:
用户输入: 100
计算机再输出:充值成功,您本次充值100元。
二、在控制台中输出一个百花园图案,程序运行结果如图2.33所示。
2.4 程序编写规范
下面给出两段实现同样功能的代码,如图2.34所示。
在学习时,愿意看图2.34中的左侧代码还是右侧代码?答案应该是肯定的,通常会选择图2.34中的代码段2,因为它看上去结构更加清晰,这是一种最基本的代码编写规范。本节将对C#代码的编写规则以及命名规范进行介绍。遵循一定的代码编写规则和命名规范可以使代码更加规范化,对代码的理解与维护起到至关重要的作用。
2.4.1 代码编写规则
代码编写规则通常对应用程序的功能没有影响,但它们对于改善源代码的理解是有帮助的。养成良好的习惯对于软件的开发和维护都是很有益的,下面列举一些常用的代码编写规则:
◆在编写C#代码时,建议先连续输入一对匹配的字符,例如(和)以及{和},再在其中填写内容。先填写内容容易忘记输入结束字符。
◆编写C#程序时,统一代码缩进的样式,比如统一缩进两个字符或者4个字符的位置。
◆每编写完-行C#代码后都应该换行编写下一行代码。
◆在编写C#代码时,应该合理使用空格,以便使代码结构更加清晰。
◆尽量使用接口,然后使用类实现接口,以提高程序的灵活性。
◆关键的语句(包括声明关键的变量)必须要写注释。
◆建议局部变量在最接近使用它的地方声明。
◆不要使用goto系列语句,除非是用在跳出深层循环时。
◆避免编写超过5个参数的方法,如果要传递多个参数,则使用结构。
◆避免书写代码量过大的try…catch语句块。
◆避免在同一个文件中编写多个类。
◆生成和构建一个长的字符串时,一定要使用StringBuilder类型,而不用string类型。
◆对于if语句,应该使用一对大括号“{ }”把语句块括起来。
◆switch 语句一定要有default语句来处理意外情况。
2.4.2 命名规范
命名规范在编写代码中起到很重要的作用,虽然不遵循命名规范,程序也可以运行,但是使用命名规范可以更加直观地了解代码所代表的含义。本节将介绍C#中常用的一些命名规范。
1.两种命名方法
在C#中,最常用的有两种命名方法,分别是Pascal(帕斯卡或大驼峰)命名法和Camel(小驼峰)命名法,下面分别介绍。
◆用Pascal命名法来命名方法和类型,首字母必须大写,且后面连接词的首字母均为大写。
说明: Pascal 是以纪念法国数学家Blaise Pascal而命名的一种编程语言,C# 中的Pascal命名法就是根据该语言的特点总结出来的一种命名方法。
例如,定义一个公共类,并在此类中创建一个公共方法,代码如下:
◆用Camel命名法来命名局部变量和方法的参数,Camel命名法是指名称中第一个单词的首字母小写。
说明:Camel命名法又称驼峰式命名法,它是由骆驼的体型特征推理出来的一种命名方法。
例如,声明一个字符串变量和创建一个公共方法,代码如下:
2.程序中的命名规范
在开发项目时,通常要遇到各个程序元素的命名问题,比如项目的命名、类的命名、方法的命名等,例如,图2.35 中声明了一个User类,图2.36 中声明了一个aaa类。
查看图2.35和图2.36,从类的命名上,图2.35中的User类,可以很容易看出是与用户相关的一个类,但是图2.36中声明的aaa类,很难直接看出其主要用途。从这两个例子可以看出,在对程序元素命名时,如果遵循一定的规范,将使代码更加具有可读性,下面介绍一下常用程序元素的基本命名规范。
◆命名项目名称时,可以使用公司域名+产品名称,或者直接使用产品名称。
例如,利用公司名和产品名定义命名空间,例如,在命名项目时,可以将项目命名为“mingrisof.ERP"或者“ERP”,其中,mingrisoft是公司的域名,ERP是产品名称。
◆用有意义的名字定义命名空间,如公司名、产品名。
例如,利用公司名和产品名定义命名空间,代码如下:
◆接口的名称加前缀“I"。
例如,创建一个公共接口Iconvertible, 代码如下:
◆类的命名最好能够体现出类的功能或操作。
例如,创建一个名称为Operation的类,用来作为运算类,代码如下:
◆方法的命名:一般将其命名为动宾短语,表明该方法的主要作用。
例如,在公共类File中创建CreateFile方法和GetPath方法,代码如下:
◆定义成员变量时,最好加前缀“_”。
例如,在公共类DataBase中声明一个私有成员变量connectionString, 代码如下:
2.5 难点解答
2.5.1 区分常见的3种项目类型
使用C#开发项目时,最常见的3种项目类型分别是:控制台应用程序、Windows 窗体应用程序和ASP.NET网站应用程序,其中,控制台应用程序是没有独立窗口的程序,一般在命令行运行,其输入输出通过标准的IO进行; Windows窗体应用程序是在计算机上运行的客户端应用程序,可以显示信息、请求用户输入,以及通过网络与远程计算机进行通信,比如大家常用的QQ软件、360安全卫士等; ASP.NET网站应用程序是一种可以通过Web访问的应用程序,其最大的一个好处就是:用户很容易访问,只需要浏览器即可,而不需要再安装其他软件,比如百度网、新浪网、淘宝网等。3种项目类型的典型界面分别如图2.36、图2.37和图2.38所示。
2.5.2 为什么要使用注释?
开发人员编写程序代码时,不仅需要电脑理解编写的程序,也需要其他开发人员读懂你的代码,因为一个人永远不可能只干一件工作或者只在一家公司工作,那么为了项目的后期维护,必须确保代码能够被其他人理解。因此,开发人员编写程序代码时,一定要说明编写的代码主要用来做什么。如图2.39所示,给出一段没有注释的代码给其他人看,其他人第一眼看上去肯定会是一头雾水。
但是,如果给这段代码加上注释,如图2.40所示,这时就可以一目了然地看到这段代码的具体作用以及每一行代码的用途。
2.6 小结
本章主要介绍了C#程序的结构、代码编写规范和命名规范。在C#程序的结构中,需要重点掌握命名空间、类以及C#语句,其中,命名空间在C#程序中占有重要的地位,通过引入命名空间,可以将命名空间下的类引入到当前项目中;类是C#语言的核心和基本构成模块,开发人员可以通过编写各种类来描述实际开发需要解决的问题;语句是构造所有C#程序的基本单位,程序中的任何逻辑操作都需要通过C#语句实现。另外,在编写程序代码时,要养成一种良好的编写习惯,本章列出一些常用的代码编写规则和命名规范。
C#入门到精通系列课程——第2章编写C#程序的更多相关文章
- C#入门到精通系列课程——第1章软件开发及C#简介
◆本章内容 (1)了解软件 (2)软件开发相关概念 (3)认识.NET Framework (4)C#语言 (5)Visual Studio 2017 ◆本章简述 软件在现代人们的日常生活中随处可见, ...
- C#入门到精通系列课程——第3章变量及运算符
◆本章内容 (1)变量是什么 (2)变量的声明及初始化 (3)常量 (4)运算符 (5)数据类型转换 (6)运算符优先级及结合性 (7)难点解答 ◆本章简述 很多人认为学习C#之前必须要学习C++,其 ...
- ASP.NET MVC4入门到精通系列目录汇总
序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...
- Provisioning Services 7.6 入门到精通系列之一:PVS前期规划
1. Provisioning Services 产品概述 Provisioning Services (简称PVS)采用了一种与传统映像解决方案截然不同的方法,从根本上改变了硬件与依托硬件而运行的 ...
- Jenkins pipeline 入门到精通系列文章
Jenkins2 入门到精通系列文章. Jenkins2 下载与启动jenkins2 插件安装jenkins2 hellopipelinejenkins2 pipeline介绍jenkins2 jav ...
- 办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时)
办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时) 乔布斯的成功离不开美轮美奂的幻灯片效果,一个成功的商务人士.部门经理也少不了各种各样的PPT幻灯片.绿色资源网给你提供了 ...
- NHibernate从入门到精通系列
http://www.cnblogs.com/GoodHelper/archive/2011/02/17/1948744.html NHibernate从入门到精通系列(4)——持久对象的生命周期(上 ...
- Selenium 入门到精通系列:六
Selenium 入门到精通系列 PS:Checkbox方法 例子 HTML: <html> <head> <title>测试页面</title> &l ...
- Selenium 入门到精通系列:五
Selenium 入门到精通系列 PS:显式等待.隐式等待.强制等待方法 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019 ...
随机推荐
- Go的包
目录 go的包 一.包的创建规则 二.包的导入规则 三.包的函数调用 go的包 一.包的创建规则 一个包就是一个文件夹. 同一个包(文件夹)下,所有go文件都只能用同一个package,也就是每个文件 ...
- 顶级c程序员之路 选学篇-1 深入理解字节,字节序与字节对齐
深入理解字节,字节序与字节对齐 一 总述 作为一个职业的coder玩家,首先应该对计算机的字节有所了解. 我们经常谈到的2进制流,字节(字符)流,数据类型流(针对编程),结构流等说法,2进制流,0和 ...
- MySQL:初识数据库
对于大型互联网公司来说,数据的重要性可能比软件本身更重要.据说淘宝业务系统的开发大概消耗约7000万人民币,而其保存的用户数据的价值远高于此,加上数据分析算法的加持,其产生的价值和收益无疑是巨大的,远 ...
- ReactElement源码笔记
ReactElement 源码笔记 ReactElement通过 createElement创建,调用该方法需要 传入三个参数: type config children type指代这个ReactE ...
- 第十届蓝桥杯省赛-试题E: RSA 解密
试题E: RSA 解密 这里涉及到很多数论的知识:质因子分解,扩展欧几里得算法,快速幂算法,利用快速乘算法求解快速幂(mod太大导致不能直接乘,而是需要使用加法来替代乘法) 另外还需要注意扩展欧几里得 ...
- Java 面向对象 01
面向对象·一级 面向对象思想概述 * A:面向过程思想概述 * 第一步 * 第二步 * B:面向对象思想概述 * 找对象(第一步,第二步) * C:举例 * 买煎饼果子 ...
- 番外----python入门----pip相关
pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能. 但是,由于pip使用的pip仓库默认为:http://pypi.python.org/ 是国外的 ...
- 面试准备——计算机网络(https)
一.为什么要提出HTTPS? HTTP的缺点: 明文通信.不加密,可能被窃听. 无身份验证,可能遭遇伪装. 无法证明报文的完整性,可能被篡改. 二.HTTPS = HTTP+加密(防窃听)+认证(防伪 ...
- 从一部电影史上的趣事了解 Spring 中的循环依赖问题
title: 从一部电影史上的趣事了解 Spring 中的循环依赖问题 date: 2021-03-10 updated: 2021-03-10 categories: Spring tags: Sp ...
- MySQL入门(1)——基础操作
MySQL入门(1)--基础操作 创建数据库 创建基本数据库: create database db_admin; 创建基本数据库(等价于CREATE DATABASE): create schema ...