C#的程序结构
C#程序结构大体可以分为注释、命名空间、类、Main方法、标识符、关键字和语句。下面将对C#程序的结构进行详细的讲解。
1) 注释
编译器编译程序时不执行注释的代码或文字,其主要功能是对某行或某段代码进行说明,方便对代码的理解与维护,这一过程就好像是超市中各商品的下面都附有价格标签,对商品的价格进行说明。注释可以分为行注释和块注释两种,行注释都以“//”开头。
【例】 在“大林上位机培训!”程序中使用行注释,代码如下。
static void Main(string[] args) //程序的Main方法
{
Console.WriteLine("大林上位机培训!"); //输出“大林上位机培训!”
Console.ReadLine();
}
如果注释的行数较少,一般使用行注释。对于连续多行的大段注释,则使用块注释,块注释通常以“/*”开始,以“*/”结束,注释的内容放在它们之间。
【例】 在“大林上位机培训!”程序中使用块注释,代码如下。
/*程序的Main方法中可以输出“大林上位机培训!”字符串 //块注释开始
static void Main(string[] args) //Main方法
{
Console.WriteLine("Hello World!"); //输出“Hello World!”字符串
Console.ReadLine();
}
*/ //块注释结束
注意:块注释通常以“/*”开始,以“*/”结束,符号之间的代码或者文字都不执行
注释可以出现在代码的任意位置,但是不能分隔关键字和标识符。
2 ) 命名空间
C#程序是利用命名空间组织起来的。命名空间既用做程序的“内部”组织系统,也用做向“外部”公开的组织系统(即一种向其他程序公开自己拥有的程序元素的方法)。如果要调用某个命名空间中的类或者方法,首先需要使用using指令引入命名空间,using指令将命名空间名所标识的命名空间内的类型成员导入当前编译单元中,从而可以直接使用每个被导入的类型的标识符,而不必加上它们的完全限定名。
C#中的各命名空间就好像是一个存储了不同类型的仓库,而using指令就好比是一把钥匙,命名空间的名称就好比仓库的名称,可以通过钥匙打开指定名称的仓库,从而在仓库中获取所需的物品。
using指令的基本形式为:
using 命名空间名;
上节中打开代码编辑界面时,可以看到默认调用的命名空间,以及我们后引入的命名空间
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using HalconDotNet;
using System.IO;
例 命名空间的应用
创建一个控制台应用程序,建立一个命名空间N1,在命名空间N1中有一个类A,在项目中使用using指令引入命名空间N1,然后在命名空间Test02中即可实例化命名空间N1中的类,然后调用此类中的Myls方法,代码如下。
using N1; //使用using指令引入命名空间N1
namespace Test02
{
class Program
{
static void Main(string[] args)
{
A oa = new A(); //实例化N1中的类A
oa.Myls(); //调用类A中的Myls方法
}
}
}
namespace N1 //建立命名空间N1
{
class A //实例化命名空间N1中的类A
{
public void Myls()
{
Console.WriteLine("我在苏州和讯学习机器视觉"); //输出字符串
Console.ReadLine();
}
}
}
程序的运行结果为“我在苏州和讯学习机器视觉”。
注意:
用户也可以在项目的命名空间中定义命名空间,只是这样定义,不能用using来引用自定义的命名空间。
3) 类
可以将C#语言理解为一门工具语言,是为了解决我们实际问题而存在的,抽象自我们的实际生活,譬如中文,英文等,也可以理解为公司的一套作业流程,例如,我们找快递公司,将一个包裹发往南京,而发货之前我们对快递这项业务一窍不通,你需要通过查找资料明白了需要通过快递公司解决这个问题,这时候我们可以将快递公司抽象成C#语言中的一个类,功能是将包裹从一个地方输送到另外一个地方,这时候你需要在您附加联系到一家具体的快递公司(例如小区门口的顺丰快递),那么这个具体的顺丰快递公司就抽象为C#语言中的一个对象,这个对象是上面的快递公司这个类实例化出来的,很明显没有快递公司这个类,就不会有具体的顺丰快递存在,在联系上具体的顺丰快递这个对象之后,你需要告诉顺丰快递一些信息,例如 收货地址,电话,收货人等,这就是抽象为C#中你传递给对象的参数,在您包裹送到南京目的地后,顺丰快递会通过短信的方式告诉你快递已经到达,这就是类似C#中对象返回值。
类是一种数据结构,它可以封装数据成员、函数成员和其他的类。类是创建对象的模板。C#中所有的语句都必须位于类内。因此,类是C#语言的核心和基本构成模块。C#支持自定义类,使用C#编程就是编写自己的类来描述实际需要解决的问题。
类就好比医院的各个部门,如内科、骨科、泌尿科、眼科等,在各科室中都有自己的工作方法,相当于在类中定义的变量、方法等。如果要救治车祸重伤的病人,光是一个部门是不行的,可能要内科、骨科、脑科等多个部门一起治疗才行,这时可以让这几个部门临时组成一个小组,对病人进行治疗,这个小组就相当于类的继承,也就是该小组可以动用这几个部门中的所有资源和设备。
使用任何新的类之前都必须声明它,一个类一旦被声明,就可以当作一种新的类型来使用,在C#中通过使用class关键字来声明类,声明形式如下。
[类修饰符] class [类名] [基类或接口]
{
[类体]
}
在C#中,类名是一种标识符,必须符合标识符的命名规则。类名要能够体现类的含义和用途。类名一般采用第一个字母大写的名词,也可以采用多个词构成的组合词。
【例】 声明一个最简单的类,此类没有任何意义,只演示如何声明一个类,代码如下。
class MyClass
{
}
4 ) Main方法
Main方法是程序的入口点,C#程序中必须包含一个Main方法,在该方法中可以创建对象和调用其他方法,一个C#程序中只能有一个Main方法,并且在C#中所有的Main方法都必须是静态的。C#是一种面向对象的编程语言,即使是程序的启动入口点,它也是一个类的成员。由于程序启动时还没有创建类的对象,因此,必须将入口点Main方法定义为静态方法,使它可以不依赖于类的实例对象而执行。
Main方法就相当于汽车的电瓶,在生产汽车时,将各个零件进行组装,相当于程序的编写。当汽车组装完成后,就要检测汽车是否可用,如果想启动汽车,就必须通过电瓶来启动汽车的各个部件,如发动机、车灯等,电瓶就相当于启动汽车的入口点。
可以用3个修饰符修饰Main方法,分别是public、static和void。
þ public:说明Main方法是共有的,在类的外面也可以调用整个方法。
þ static:说明方法是一个静态方法,即这个方法属于类的本身而不是这个类的特定对象。调用静态方法不能使用类的实例化对象,必须直接使用类名来调用。
þ void:此修饰符说明方法无返回值。
5 ) 标识符及关键字
标识符是指在程序中用来表示事物的单词,例如,System命名空间中的类Console,以及Console类的方法WriteLine都是标识符,标识符的命名有3个基本规则,分别介绍如下。
þ 标识符只能由数字、字母和下划线组成。
þ 标识符必须以字母或者下划线开头。
þ 标识符不能是关键字。
所谓的关键字是指在C#语言中具有特殊意义的单词,它们被C#设定为保留字,不能随意使用。例如,在“大林上位机培训!”程序中的class、static和void都是关键字。
说明:
在对类、变量、方法等进行命名时,不要与标识符和关键字重名。
6 )C#语句
语句是构造所有C#程序的基本单位。语句可以声明局部变量或常数、调用方法、创建对象或将值赋给变量、属性或字段,语句通常以分号终止。
【例】 下面的代码就是一条语句。
Console.WriteLine("大林上位机培训!");
此语句便是调用Console类中的WriteLine方法,输出指定的字符串“大林上位机培训!”。
版权所有:江苏和讯自动化设备有限公司所有 备案号:苏ICP备2022010314号-1
技术支持: 易动力网络