c#基础.docx

上传人:b****4 文档编号:24080307 上传时间:2023-05-24 格式:DOCX 页数:31 大小:249.74KB
下载 相关 举报
c#基础.docx_第1页
第1页 / 共31页
c#基础.docx_第2页
第2页 / 共31页
c#基础.docx_第3页
第3页 / 共31页
c#基础.docx_第4页
第4页 / 共31页
c#基础.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

c#基础.docx

《c#基础.docx》由会员分享,可在线阅读,更多相关《c#基础.docx(31页珍藏版)》请在冰豆网上搜索。

c#基础.docx

c#基础

C#语言基础

C#.NET是微软公司推出的一种类型安全、现代、简单、由C和C++衍生出来的面向对象的编程语言。

掌握C#.NET的特点、程序结构、集成开发环境、C#语言的基本知识等,是利用好C#的前提。

本章内容

⏹C#概述

⏹C#语言基础

⏹控制结构

⏹数组

⏹异常处理

1.1C#概述

C#是微软公司在2000年7月发布的一种全新的简单、安全、面向对象的程序设计语言。

它是专门为.NET的应用而开发的语言。

1.1.1.NET简介

1..NET定义

.NET技术是微软公司推出的一个全新概念,它代表了一个集合、一个环境和一个可以作为平台支持下一代Internet的可编程结构。

.NET的目的就是将互联网作为新一代操作系统的基础,对互联网的设计思想进行扩展,使用户在任何地方、任何时间、利用任何设备都能访问所需要的信息、文件和程序。

.NET平台包括.NET框架和.NET开发工具等部分。

.NET框架(Framework)是整个开发平台的基础,包括公共语言运行库和.NET类库。

.NET开发工具包括VisualStudio.NET集成开发环境和.NET编程语言。

.NET编程语言包括VisualBasic、VisualC++和新的VisualC#等用来创建运行在公共语言运行库(CommonLanguageRun,CLR)上的应用程序。

.NET框架结构如图1-1所示。

VisualBasic.NET

C#

托管C++

J#

其他语言

公共语言规范(CLS)

ASP.NET/Web应用/Web服务

Windows窗体应用

ADO.NET与XML

.NET框架基础类库

公共语言运行时

操作系统

图1-1.NET框架结构

2.公共语言运行库

公共语言运行库是.NETFramework的基础。

可以将运行库看成一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。

事实上,代码管理的概念是运行库的基本原则。

以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。

公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。

这些功能是在公共语言运行库上运行的托管代码所固有的。

3..NET框架类库

.NETFramework类库是一个与公共语言运行库紧密集成的可重用的类型集合,是对WindowsAPI封装的全新设计,它为开发人员提供了一个统一的、面向对象的、分层的和可扩展的庞大类库。

该类库是面向对象的,使.NETFramework类型易于使用,而且还减少了学习.NETFramework的新功能所需要的时间。

此外,第三方组件可与.NETFramework中的类无缝集成。

例如,用.NETFramework集合类实现一组可用于开发您自己的集合类的接口。

您的集合类将与.NETFramework中的类无缝地混合。

.NETFramework类型使您能够完成一系列常见编程任务(包括字符串管理、数据收集、数据库连接以及文件访问等任务)。

除这些常见任务之外,类库还包括支持多种专用开发方案的类型。

例如,可使用.NETFramework开发下列类型的应用程序和服务:

∙控制台应用程序。

∙WindowsGUI应用程序(Windows窗体)。

∙ASP.NET应用程序。

∙XMLWebservices。

∙Windows服务。

例如,Windows窗体类是一组综合性的可重用类型,它们大大简化了WindowsGUI的开发。

如果要编写ASP.NETWeb窗体应用程序,可使用Web窗体类。

1.1.2什么是C#

1.C#及其特点

C#是微软公司在2000年7月发布的一种全新且简单、安全、面向对象的程序设计语言,是专门为.NET的应用而开发的语言。

它吸收了C++、VisualBasic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。

C#继承了C语言的语法风格,同时又继承了C++的面向对象特性。

不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。

.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。

同时,公共语言运行时(CommonLanguageRuntime)为C#程序语言提供了一个托管的运行时环境,使程序比以往更加稳定、安全。

其特点有:

∙语言简洁。

∙保留了C++的强大功能。

∙快速应用开发功能。

∙语言的自由性。

∙强大的Web服务器控件。

∙支持跨平台。

∙与XML相融合。

2.C#与C++的比较

C#对C++进行了多处改进,主要区别如下:

∙编译目标:

C++代码直接编译为本地可执行代码,而C#默认编译为中间语言(IL)代码,执行时再通过Just-In-Time将需要的模块临时编译成本地代码。

∙内存管理:

C++需要显式地删除动态分配给堆的内存,而C#不需要这么做,C#采用垃圾回收机制自动在合适的时机回收不再使用的内存。

∙指针:

C++中大量地使用指针,而C#使用对类实例的引用,如果确实想在C#中使用指针,必须声明该内容是非安全的。

不过,一般情况下C#中没有必要使用指针。

∙字符串处理:

在C#中,字符串是作为一种基本数据类型来对待的,因此比C++中对字符串的处理要简单得多。

∙库:

C++依赖于以继承和模板为基础的标准库,C#则依赖于.NET基库。

∙C++允许类的多继承,而C#只允许类的单继承,而通过接口实现多继承。

在后面的学习中会发现,C#与C++相比还有很多不同和改进之处,包括一些细节上的差别,这里就不一一列举了。

3.C#与Java的比较

∙C#面向对象的程度比Java高。

∙C#中的基本类型都是面向对象的。

∙C#具有比Java更强大的功能。

∙C#语言的执行速度比Java快。

1.1.3VisualStudio.NET的集成开发环境

.NET开发语言都采用了统一的集成开发环境VisualStudio.NET。

下面加以介绍。

(1)VisualStudio起始页

启动VisualStudio.NET后,首先看到一个如图1-2所示的起始页。

在起始页可以打开已有的项目或建立新的项目。

图1-2VisualStudio起始页

(2)新建VisualC#.NET项目

在VisualStudio.NET集成开发环境中,通过执行“文件”→“新建”→“项目”菜单命令,将会弹出“新建项目”对话框,在该对话框中,可以选择不同的编程语言来创建各种项目,这些语言将共享VisualStudio.NET的集成开发环境,如图1-3所示。

图1-3“新建项目”对话框

要创建新的VisualC#.NET项目,需要在该对话框的“项目类型”窗口中选中“VisualC#项目”,在“模板”窗口中选中“Windows应用程序”。

然后在“位置”组合框中输入项目的保存位置(路径),在“名称”文本框中输入项目名称,如图1-3所示。

然后单击“确定”按钮,将会出现如图1-4所示的VisualStudio.NET集成开发环境。

图1-4VisualStudio.NET开发环境

(3)“解决方案资源管理器”窗口

项目可以视为编译后的一个可执行单元,可以是应用程序、动态链接库等。

而企业级的解决方案往往需要多个可执行程序的合作,为便于管理多个项目,在VisualStudio.NET集成环境中引入了解决方案资源管理器,用来对企业级解决方案设计的多个项目进行管理,如图1-5所示。

(4)“类视图”窗口

“类视图”窗口以树形结构显示了当前项目中的所有类,并在类中列出成员变量和成员函数。

每一个类首先列出带紫色图标的成员函数,然后列出带有蓝色图标的成员变量。

每个成员的图标左边都有一个标志,以表示成员类型和存储类别的信息,保护类型成员图标旁边的标志为一把钥匙,私有成员的标志是一把锁,而公有成员图标旁边没有标志。

如图1-6所示。

图1-5“解决方案资源管理器”窗口 图1-6“类视图”窗口

在“类视图”窗口中双击类名,会在主工作区中打开这个类的头文件,显示出类的声明;而双击某个类的成员,则主工作区中会显示该成员的定义代码。

(5)“工具箱”窗口

“工具箱”窗口包含了可重用的控件,用于定义应用程序。

使用可视化的方法编程时,可在窗体中“拖放”控件,绘制出应用程序界面。

“工具箱”中的控件分成几组,如“数据”组、“组件”组、“Windows窗体”组。

单击组名称可展开一个组。

如图1-7所示。

图1-7“工具箱”窗口

(6)“属性”窗口

“属性”窗口用于设置控件的属性。

属性定义了控件的信息,如大小、位置、颜色等。

“属性”窗口左边一栏显示了控件的属性名,右边一栏显示属性的当前值。

如图1-8所示。

图1-8“属性”窗口

1.1.4初识C#程序

C#.NET主要用于开发三类程序:

控制台程序、Windows程序和ASP.NET程序。

C#程序的扩展名为.CS,使用编译器CSC.EXE可编译成可执行文件。

1.控制台程序

【案例1-1】一个简单的控制台程序。

程序运行后显示“欢迎XXX进入C#世界!

”,运行结果如图1-9所示。

图1-9欢迎进入C#世界

【技术要点】

C#应用程序包含Main方法,它是C#应用程序执行的起点。

在该函数中通过系统类Console的方法WriteLine(),可以在屏幕上输出字符串。

【实现步骤】

(1)启动VisualStudio.NET。

(2)选择主菜单“文件”→“新建”→“项目”,打开“新建项目”对话框。

(3)在“新建项目”对话框中的左窗格选择“VisualC#项目”,右窗格选择“控制台应用程序”,然后指定项目名称和存放位置,单击“确定”按钮。

(4)在代码编辑窗口中可看到自动生成的程序代码框架,在Main函数中加入代码。

(5)选择主菜单“生成”→“生成Welcome”,进行编译和连接。

(6)选择“调试”→“启动”执行程序。

【程序代码】

usingSystem;

namespaceWelcome

{

///

///Class1的摘要说明

///

classClass1

{

///

///应用程序的主入口点

///

[STAThread]

staticvoidMain(string[]args)

{

Console.WriteLine("请输入你的名字:

");

stringusername=Console.ReadLine();

Console.WriteLine("欢迎{0}进入C#世界!

",username);

}

}

}

程序中的第一行语句“usingSystem;”的作用是导入命名空间,该语句类似于C和C++中的#include命令。

导入命名空间之后,就可以自由使用其中的元素了。

System是.NET框架提供的最基本的命名空间之一,Console是System命名空间中包含的系统类库中已定义的一个类。

利用该类的ReadLine()和WriteLine()方法可以进行输入输出。

{0}代替WriteLine方法的参数表中紧随格式串后的第一个变量。

可以用该技术格式化多个变量。

例如:

Console.WriteLine("Hello{0}{1},from{2}",strFirstname,strLastname,

strCity);

namespace语句声明了一个命名空间Welcome。

每个C#程序可以包含一个或多个命名空间。

类、结构、接口、枚举、委托等类型都包含在命名空间中。

class为定义类的关键字,类的名称为Class1。

C#程序的基本单位是类。

程序中的语句“staticvoidMain(string[]args);”为类Class1声明了一个主方法。

在C#程序中,程序的执行总是从Main()方法开始的,一个程序只能包含一个主方法。

可以通过Windows记事本来编写程序。

保存的文件名为Welcome.cs。

然后从开始菜单中选择“程序”→“MicrosoftVisualStudio.NET2003”→“VisualStudio.NET工具”→“VisualStudio.NET命令行提示”命令,将会出现命令行。

在命令行中输入命令“CSC盘符\目录\Welcome.cs”,回车即可生成可执行文件Welcome.exe。

执行Welcome即可看到运行结果。

2.图形界面程序

【案例1-2】第一个图形界面程序。

设计一个程序,界面上用一个文本框输入姓名,单击“确定”按钮后,在文本框中显示“欢迎XXX进入C#世界!

”,运行结果如图1-10所示。

图1-10第一个图形界面程序

【技术要点】

在按钮的单击事件privatevoidbutton1_Click(objectsender,System.EventArgse)中取出文本框中的内容,然后与“欢迎”及“进入C#世界!

”相连,再赋给文本框的Text的属性。

【实现步骤】

(1)启动VisualStudio.NET。

(2)选择主菜单“文件”→“新建”→“项目”,打开“新建项目”对话框。

(3)在“新建项目”对话框中的左窗格选择“VisualC#项目”,右窗格选择“Windows应用程序”,指定项目名称和存放位置后,单击“确定”按钮。

(4)从工具箱中选择文本框

,然后抬起鼠标,在窗体的适当位置按下鼠标左键后拖动到适当大小,抬起左键。

利用类似的方法再放置一个按钮

(5)在属性窗口中将文本框的Text属性清空,将按钮的Text属性改为“确定”。

(6)双击按钮,在按钮的单击事件中加入代码。

(7)选择工具栏中的

运行程序。

【程序代码】

usingSystem;

usingSystem.Drawing;

usingSystem.Collections;

usingSystem.ComponentModel;

usingSystem.Windows.Forms;

usingSystem.Data;

namespaceWindowsWelcome

{

///

///Form1的摘要说明

///

publicclassForm1:

System.Windows.Forms.Form

{

privateSystem.Windows.Forms.TextBoxtextBox1;

privateSystem.Windows.Forms.Buttonbutton1;

///

///必需的设计器变量

///

privateSystem.ComponentModel.Containercomponents=null;

publicForm1()

{

//

//Windows窗体设计器支持所必需的

//

InitializeComponent();

//

//TODO:

在InitializeComponent调用后添加任何构造函数代码

//

}

///

///清理所有正在使用的资源

///

protectedoverridevoidDispose(booldisposing)

{

if(disposing)

{

if(components!

=null)

{

components.Dispose();

}

}

base.Dispose(disposing);

}

#regionWindows窗体设计器生成的代码

///

///设计器支持所需的方法——不要使用代码编辑器修改此方法的内容

///

privatevoidInitializeComponent()

{

this.textBox1=newSystem.Windows.Forms.TextBox();

this.button1=newSystem.Windows.Forms.Button();

this.SuspendLayout();

//

//textBox1

//

this.textBox1.Location=newSystem.Drawing.Point(56,32);

this.textBox1.Name="textBox1";

this.textBox1.Size=newSystem.Drawing.Size(168,21);

this.textBox1.TabIndex=0;

this.textBox1.Text="";

//

//button1

//

this.button1.Location=newSystem.Drawing.Point(112,72);

this.button1.Name="button1";

this.button1.Size=newSystem.Drawing.Size(56,24);

this.button1.TabIndex=1;

this.button1.Text="确定";

this.button1.Click+=newSystem.EventHandler(this.button1_

Click);

//

//Form1

//

this.AutoScaleBaseSize=newSystem.Drawing.Size(6,14);

this.ClientSize=newSystem.Drawing.Size(280,117);

this.Controls.Add(this.button1);

this.Controls.Add(this.textBox1);

this.Name="Form1";

this.Text="Form1";

this.ResumeLayout(false);

}

#endregion

///

///应用程序的主入口点

///

[STAThread]

staticvoidMain()

{

Application.Run(newForm1());

}

privatevoidbutton1_Click(objectsender,System.EventArgse)

{

textBox1.Text="欢迎"+textBox1.Text+"进入C#世界!

";

}

}

}

本案例的实现步骤反映了一个Windows应用程序建立的一般步骤。

除事件过程的代码是手工加入的外,其余代码都是由设计器生成的。

程序的组成大体包括:

(1)导入必要的命名空间

usingSystem.Drawing;

usingSystem.Collections;

usingSystem.ComponentModel;

usingSystem.Windows.Forms;

usingSystem.Data;

(2)声明命名空间

namespaceWindowsWelcome

(3)声明System.Windows.Forms的派生类。

在该类中主要包含:

∙控件的定义。

∙构造函数Form1():

调用InitializeComponent建立界面。

∙清理资源函数Dispose():

窗口关闭时调用,用于清理所有正在使用的资源。

∙初始化函数InitializeComponent():

建立控件,设置控件属性,生成界面。

∙主函数Main():

程序的运行起点,用于启动程序,建立窗口对象。

∙单击事件处理函数button1_Click():

处理按钮单击事件。

1.1.5命名空间

命名空间就像在文件系统中用一个文件夹容纳多个文件一样,可以看作某些类的一个容器。

通过把类放入命名空间可以把相关的类组织起来,并且可以避免命名冲突。

命名空间既用于程序的“内部”组织系统,也用于“外部”组织系统(一种向其他程序公开自己拥有的程序元素的方法)。

命名空间可以包含其他的命名空间。

这种划分方法的优点类似于文件夹。

与文件夹不同的是,命名空间只是一种逻辑上的划分,而不是物理上的存储分类。

1.命名空间声明

namespace关键字用于声明一个命名空间。

格式如下:

namespacename[.name1]...]{

类型声明

}

其中name,name1为命名空间名,可以是任何合法的标识符。

命名空间名可以包含句点。

例如:

namespaceN1.N2

{

classA{}

classB()

}

等同于:

namespaceN1

{

namespaceN2

{

classA{}

classB()

}

}

在一个命名空间中,可以声明一个或多个下列类型:

类、接口、结构、枚举、委托。

即使未显式声明命名空间,也会创建默认命名空间。

该未命名的命名空间(有时称为全局命名空间)存在于每一个文件中。

全局命名空间中的任何标识符都可用于命名的命名空间中。

命名空间隐式具有公共访问权,并且这是不可修改的。

2.命名空间的使用

使用using指令能够引用给定的命名空间或创建命名空间的别名(using别名)。

using[别名=]类或命名空间名;

下面的示例显示了如何为类定义using指令和using别名:

usingSystem;//usingdirective

usingAliasToMyClass=NameSpace1.MyClass;//usingaliasforaclass

namespaceNameSpace1

{

publicclassMyClass

{

publicoverridestringToString()

{

return"YouareinNameSpace1.MyClass";

}

}

}

namespaceNameSpace2

{

classMyClass

{}

}

namespaceNameSpace3

{

usingNameSpace1;//

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1