近期开始接触到在校学生、高校实习生和毕业生,在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入软件开发公司开始职场生涯,人生来一个完美的转弯。[袁永福版权所有]
--------------------------------------------------------------------
C#基本语法
课程介绍
面向读者说明C#编程语言的基本语法,本章要求阅读者已经掌握了一种计算机高级编程语言,比如VB或C++等,理解变量、数组、条件判断、循环等编程知识。达到了国家计算机等级考试二级的水平。
本章是面向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(
"显示一个消息");”,这行代码调用了类型MessageBox的Show方法,参数是字符串“"显示一个消息"”。这行代码就是调用类型System.Windows.Forms.MessageBox的Show静态方法来显示一个文本消息框。
注意在写C#代码时,记得要根据需要写上分号“;”。
[袁永福版权所有]
本文转自xdesigner 51CTO博客,原文链接:http://blog.51cto.com/xdesigner/619223,如需转载请自行联系原作者