毕业生的商业软件开发之路 --- C#基本语法-C#代码模块逻辑框架

C#基本语法

课程介绍

面向读者说明C#编程语言的基本语法,本章要求阅读者已经掌握了一种计算机高级编程语言,比如VBC++等,理解变量、数组、条件判断、循环等编程知识。达到了国家计算机等级考试二级的水平。

本章是面向C#初学者的,因此只介绍C#的基础语法,不介绍C#的高级语法。

C#的代码模块逻辑框架。

C#代码模块逻辑上分为命名空间、类型、成员。

以下就是一个完整的C#源代码内容,

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show("显示一个消息");

        }

    }

}

这段代码为例说明一下C#的代码模块组织结构。[袁永福版权所有]

命名空间

命名空间就是C#最大的语法结构模块,这个模块是按照名称来标识的。每个类型都有所属的命名空间。同一个命名空间的类型不能重名,但不同的命名空间可以拥有相同名称的类型。

C#中使用以下语法结构来使用命名空间。

namespace 命名空间名称

{

    若干个类型

}

在本例中,使用代码“namespace WindowsFormsApplication1定义了一个名为“WindowsFormsApplication1”的命名空间,其中定义了名为“Form1”的类型。

对于很多编程语言,比如C语言,它没有命名空间的概念,几千个函数排列在一起,对于VB也是几百个类混在一起,这些都会导致开发人员记忆和调用非常不方便。

而使用命名空间,就能将诸多类型层次化,利于模块化,而且方便调用。

命名空间也可以分层次,比如以下代码。

namespace 命名空间名称

{

    若干个类型

}

namespace 命名空间名称.子命名空间

{

    若干个类型

}

这段代码就定义了一个命名空间和子命名空间,这个层数是没有限制的。

 

C#功能代码中,要引用某个类型必须是它的类型全名,也就是“命名空间.类型名称”,此时代码显得比较臃肿,而且若未来类型的命名空间发生改变,则需要修改不少代码。此时C#使用using关键字来引用命名空间。

例如在演示代码的开头有[袁永福版权所有]一行代码“using System.Windows.Forms;”,此时就在代码中引用了命名空间“System.Windows.Forms”,而窗体类型“Form”就在这个命名空间下面,则可以在代码中直接使用“Form”来获得窗体的类型,若没有这个using代码,则必须使用“System.Windows.Forms.Form”来获得窗体类型,这就使得代码显得有些臃肿。从这里看,using关键字的作用有点类似VB中的with关键字。

注意using关键字除了能引用命名空间外,还能形成自动销毁对象的语法结构。

类型

命名空间下面就是定义类型了,包括类类型、结构体类型、委托类型。命名空间下面不能直接跟上字段、函数等。因此C#没有游离于类型之外的函数。

理论上是可以跳出命名空间而直接编写类型,这样也能编译通过,但在实践中不推荐这么做。

在演示代码中,使用了以下的代码定义了一个类型。

public partial class Form1 : Form

{

}

在这里,public关键字说明该类型是公开的,可以被任何程序调用。

partial关键字说明这段代码不是这个类型的全部代码,C#工程中还有其他的代码文件包含了这个类型的代码,在编译程序的时候,编辑器[袁永福版权所有]会收集这些分散的源代码收集起来组成一份完整的源代码参与编译。

class关键字说明这是在定义一个类类型。

Form1是新类型的名称。

Form是跟在Form1后面,中间有一个引号,这个说明新增的类型Form1是集成自已有的类型Form。若前面没有代码“using System.Windows.Forms.Form”引用命名空间,则该行代码必须写成“public partial class Form1 : System.Windows.Forms.Form”。

Form后面跟着一对花括号就定义了它的类型成员定义区域。

成员

类型下面就是定义类型的成员了,包括字段、属性、方法和事件。

在演示代码中,使用以下代码定义了一个名为Form1的成员方法。

public Form1()

{

   InitializeComponent();

}

该方法名称和类型名称一样,而且没有定义返回值,因此该方法就是该类型的构造函数。

以下代码定义了一个成员方法。

private void button1_Click(object sender, EventArgs e)

{

   MessageBox.Show("显示一个消息");

}

在这段代码中,private关键字说明该方法是私有的,只能在本类型内部使用,类型之外就不能使用。

void关键字说明该方法没有任何返回值。

button1_Click是该方法的名称。

object sender”定义了该方法的第一个参数,object是参数类型,sender是参数名;类似的“EventArgs e 定义了第二个参数,两个参数之间用逗号分开。

函数声明后面就是函[袁永福版权所有]数体了。在这里使用了一行代码“MessageBox.Show("显示一个消息");”,这行代码调用了类型MessageBoxShow方法,参数是字符串“"显示一个消息"”。这行代码就是调用类型System.Windows.Forms.MessageBoxShow静态方法来显示一个文本消息框。

注意在写C#代码时,记得要根据需要写上分号“;”。

posted on 2011-07-07 14:07  袁永福 电子病历,医疗信息化  阅读(1206)  评论(1编辑  收藏  举报

导航