练习实践一、HelloWorld二、第一个Windows程序三、开发一个多种语言版本的C#程序四、用VisualC#2005创建快捷方式五、用VisualC#打造多页面网页浏览器一、HelloWorldC#(发音为“SeeSharp”)是简单、现代、面向对象和类型安全的编程语言。C#起源于C语言家族,因此,C,C++和Java的程序员很快就能熟悉它。C#已经获得了ECMAInternational和ISO/IEC的国际标准认证,它们分别是ECMA-334标准和ISO/IEC23270标准。Microsoft用于.NET框架的C#编译器就是根据这两个标准实现的。C#是面向对象的语言,但C#进一步支持面向组件(component-oriented)的编程。现代软件设计越来越依赖于自包含(self-contained)和自描述(self-describing)功能包形式的软件组件。这种组件的关键之处在于它们提供了带有属性、方法和事件的编程模型;它们还具有提供关于组件声明信息的特性(attribute);同时,它们编入了自己的文档。C#提供语言构件来直接支持这些概念,使得C#在创建和使用软件构件方面非常自然。C#的一些特征支持创建健壮和持久的应用程序:垃圾回收(garbagecollection)特征可以自动回收无用对象所占的内存空间;异常处理(exceptionhandling)提供了一个结构化和可扩展的方式,用于错误检测和恢复;语言的类型安全(type-safe)设计了防止引用非初始化变量、数组下标越界,以及执行未检查的类型转换等情形的发生。C#具有统一类型系统。所有的C#类型,包括诸如int和double的基本数据类型,都继承于单个根类型object。因此,所有类型都共享一组通用操作,并且,任何类型的值都能够以一致的方式存储、传递和操作。C#支持用户自定义引用类型和值类型,既允许对象的动态分配,也允许轻量结构的内联存储。为了保证C#程序和类库总能以兼容的方式升级,在C#的设计中十分强调版本控制。许多程序语言不太重视这一点,导致采用那些语言编写的程序常常因为其所依赖的类库的更新而无法工作。C#的设计方面直接受到版本考虑的影响,包括分开的virtual和override修饰符、方法重载的规则,以及支持对显式接口成员的声明。本章的其他部分将描述C#语言的本质特征。尽管后面的章节将更为详细,有时甚至是细致入微地描述这些规则和异常,但是本章力求对整个C#做一个简单明了的说明。其意图是向读者提供对语言的入门介绍,以便于读者上手编写程序和阅读后面的章节。1.1HelloWorld学习某种编程语言,通常采用“Hello,World”程序作为起步。下面是C#版的:usingSystem;classHello{staticvoidMain(){Console.WriteLine(Hello,World);}}C#源程序文件一般用.cs作为扩展名。假定“Hello,World”源程序文件被存为hello.cs,那么,使用下面的命令行就能通过MicrosoftC#编译器编译这个程序:cschello.cs它将产生一个名为hello.exe的可执行程序集。当程序运行时,输出结果如下:Hello,World“Hello,World”程序开头是using指令,引用了System命名空间(namespace)。命名空间提供了C#程序和类库分层次的组织手段。命名空间包含类型和其他命名空间,例如,System命名空间包含若干类型(如程序中引用的Console类),以及若干其他命名空间(如IO和Collections)。如果通过using指令引用给定命名空间,就可以对命名空间的成员进行非限定的使用。正是由于程序中使用了using指令,才能够将System.Console.WriteLine简写为Console.WriteLine。“Hello,World”程序中声明的Hello类只有一个成员,即名为Main的方法。Main方法是用static修饰符声明的。静态方法不同于实例方法,后者需要使用关键字this来引用特定的对象实例,而静态方法的操作不需要引用特定的对象。作为约定,被命名为Main的静态方法充当程序的入口点。程序输出是由System命名空间下Console类的WriteLine方法产生的。这个类是由.NET框架类库提供的,默认情况下,类库被MicrosoftC#编译器自动引用。注意C#本身没有单独的运行时类库。事实上,.NET框架是C#的运行时类库。二、第一个Windows程序前言C#是一门现代的编程语言,包含在VisualStudio.Net7.0中。它简化了C++的复杂性,保持了灵活性,对于学过C++的人来说很容易上手。写本文的时候VisualStudio.net7.02003已经发布,本文即针对此版本做一些简单的开发尝试。一、创建工程如图所示,在集成开发环境的File菜单中选择New-Project打开新建工程对话框:我们选择工程类型为VisualC#Projects,在模板中选择WindowsApplication,在Name处输入工程名称:HelloWindows,在Location中输入保存的路径。确定后,系统自动为你生成了程序框架。现在我们来简单地熟悉一下这个开发环境中。这就是我们的开发环境!A区是我们的工具箱,包括对数据库、组件、窗体控件等的支持,我们都可以选择并加入到form中,假如你找不到Toolbox,请在菜单View中选择Toolbox以打开它。B区是我们的设计工作区(包括对界面、代码的设计),图中显示的是我们刚才新建的应用程序的主窗口:Form1。C区相当于我们在VC6中的workspace:SolutionExplorer可以看成是以前的FileView,ResourceView和ClassView大家一定是很熟悉了,看到SolutionExplorer中的Form1.cs了吗?这就是Form1对应的C#文件,双击它就可以对Form1进行界面设计,鼠标右键单击Form1.cs在弹出菜单中选择ViewCode便可以查看对应的代码。D区是属性窗口:类似我们在VC6中资源编辑器里的属性窗口,但功能更强大,对于屏幕上的组件比如按钮、列表框你都可以在这里直接修改其属性:如文字、背景色等。我们接下去的任务是制作关于对话框,并添加菜单用于打开此对话框。二、添加新的Form:关于对话框选择菜单Project-AddWindowsForm,在弹出的对话框中选择类别为LocalProjectItems,选择模板为WindowsForm,在Name中输入文件名:AboutDlg.cs,确认。新的Form出现在工作区,我们在D区的属性对话框中修改Text为“关于”,选择BackColor为淡蓝色,你也可以尝试其它属性的改变。接下去,我们打开Toolbox,选择WinForms中的Label,然后在窗体中画出,并在属性对话框中修改Text为VC知识库欢迎您!我们在WinForms中再加入一个Button,修改Text为“确认”。至此,对话框的界面我们设计好了,但当用户按下确认按钮的时候,我们如何关闭对话框呢?我们双击“确认”按钮,这样系统会为按钮自动添加按钮的处理代码,在其中我们添加Close()函数用以关闭,如下所示:protectedvoidbutton1_Click(objectsender,System.EventArgse){Close();///这是我们增加的一句}关于对话框已经完成了,我们接下去要做的是为主视窗添加菜单,当选择菜单中的关于,我们就弹出“关于对话框”,让我们继续吧...三、为主视窗添加菜单在SolutionView中双击Form1.cs打开Form1,在Toolbox-WinForms中选择MainMenu,并在Form1中画出,在“TypeHere”字样处我们可以输入菜单条,如图所示:双击关于字样,系统会为我们添加该菜单条的处理代码,我们可以在其中添加打开关于对话框的代码:protectedvoidbutton1_Click(objectsender,System.EventArgse){AboutDlgdlg=newAboutDlg();///分配AboutDlg对象dlg.ShowDialog();///显示对话框}好了,我们的程序写好了,让我们按F5看看效果吧!后记C#的功能远远不止与此,本文的目的是让用过VC6的朋友对C#中WINDOWS应用程序的开发尽快上手,只当抛砖引玉。三、开发一个多种语言版本的C#程序在C#中有多种使用资源文件的方法,能够很方便地开发全球通用的应用程序。本文通过一个简单的小例子,来讲解在C#中如何利用资源文件,快速开发一个多种语言版本的程序。本例中只有一个窗体,三个控件,能够根据用户的设置以中文或英文界面运行。开发环境是Windows2000Professional、MicrosoftVisualStudio.NET2002。具体开发步骤如下:一、新建项目启动MicrosoftVisualStudio.NET,新建一个C#项目MyApp,本例工程存放于F:\Csharp\MyApp。二、添加控件在Form1窗体上添加三个控件(见图1):主菜单MainMenu、标签Label1和按钮Button1。Label1和Button1控件的属性均采用缺省设置。MainMenu控件中添加三个菜单项menuItem1、menuItem2、menuItem3。Text属性分别设为“语言”、“中文”和“English”。menuItem2、menuItem3的RadioCheck属性设为True。图1三、创建配置文件在项目中添加一个文本文件MyAppConfig.ini,保存当前程序的语言版本设置。该文件中只有一行内容。如果是“English”,则表示程序为英文版;如果是“Chinese”则为中文版。这里暂且保存为“English”。四、创建资源文件.NET中的资源文件有三种:文本(.txt)文件、XML格式的.Resx文件和.Resources文件。文本文件只能包含形如“名称=值”格式的字符串资源。.Resx文件和.Resources文件中不仅能保存字符串资源,还能保存图像等可序列化的持久对象资源。但是只有.resources文件格式的资源文件才能被嵌入到运行库可执行文件中,或被编译为附属程序集。利用VisualStudio.NET中自带的资源文件生成器(Resgen.exe),可以将.txt文件和.Resx文件转换为.resources文件格式。本例中只用到了字符串资源,所以在项目中添加两个文本文件Resource_zh.txt和Reource_en.txt。Reource_en.txt文件中的内容:menuItem1_Name=Languagebutton1_Name=Exitlabel1_Text=ThisisEnglishversion!Resource_zh.txt文件中的内容:menuItem1_Name=语言button1_Name=退出label1_Text=这是中文版!需要注意的是Resource_zh.txt文件中含有汉字,必须以UTF-8编码保存。在VisualStudio.NET集成开发环境中,可以先点击“文件”菜单中的“高级保存选项”,选中UTF-8编码格式,再保存文件。然后,点击“程序”菜单中的“VisualStudio.NET命令提示”菜单,进入DOS方式,输入以下两行命令,生成程序中能够访问的资源文件MyApp.resources和MyApp.zh-CN.resources。英文资源文件MyApp.resources作为默认的后备资源文件。MyApp.zh-CN.resources是中文资源文件,文件名中的“MyApp”是资源文件的根名称,必须与后备资源文件的根名称相同,“zh-CN”指定资源文件的区域性。F: