第1章C#语言入门Word格式文档下载.docx
《第1章C#语言入门Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第1章C#语言入门Word格式文档下载.docx(33页珍藏版)》请在冰豆网上搜索。
我们这个学期即将学习面向对象的编程,学习一门全新语言——C#。
为了证明C#不是一门学成后无用武之地的“屠龙绝技”,我们先来看一下这个被誉为“最新、最有前途的程序语言”究竟能够做些什么吧!
B/S结构的Web应用程序。
网站和各种基于浏览器的信息系统领域。
Wap应用程序和无线网站。
无线网络应用程序和各类3G应用领域。
C/S结构的客户端程序,如图书馆系统、超市售货系统等。
网络游戏。
各类桌面游戏客户端。
工业控制系统。
接下来让我们一起来了解身边的C#实例:
Nopcommerce(国外一个高质量的开源B2C网站系统)。
中国网通的互联星空收费平台。
中国联通的手机短信平台。
中国小灵通短信平台。
鞍钢的ERP系统。
用友的财务软件。
联想的防火墙管理系统。
很多小游戏,如俄罗斯方块、连连看等。
大型办公自动化OA系统。
……
现在支持C#的用户越来越多,最新的微软技术同样对C#开放,例如,最新的DirectX9.0里面就加入了对C#的支持和示例程序。
所以,C#同样可用来实现大型3D游戏的开发。
下面我们一起来详细了解C#这把将会开启你事业大门的钥匙吧!
1.1.NET框架和C#语言简介
1.1.1.NET框架简介
说到C#,就不得不先简单介绍一下.NET。
按照微软总裁兼首席执行官Steve的说法:
“它代表一个集合,一个环境,可以作为平台支持下一代Internet的可编程结构。
C#是.NET的代表语言。
C#语言和.NET的关系就像歼-15舰载战斗机与辽宁号航空母舰的关系。
航母是一个能让舰载机充分发挥其优势的作战平台,所以学习C#语言也离不开对.NET的理解。
为了方便学习,下面简单地了解一下.NET这个“航母”平台的基础知识。
Microsoft.NET(简称.NET)是微软公司推出的面向网络的一套完整的开发平台,从程序员的角度看,.NET是一组用于生成Web服务器应用程序、Web应用程序、Windows应用程序和移动应用程序的软件组件,用该平台建立的应用程序可以在公共语言运行库的控制下运行。
1..NET体系结构
如图1.1所示,.NET体系结构的核心是.NET框架(.NETFramework),其在操作系统之上为程序员提供了一个编写各种应用程序的高效工具和环境。
.NET体系结构的顶层是用各种语言编写的应用程序,这些应用程序由公共语言运行库控制执行。
图1.1.NET体系结构
.NET能支持多种应用程序的开发,其中控制台程序是一种传统而简单的程序形式,一般是字符界面,可以编译为独立的可执行文件,通过命令行运行,在字符界面上输入/输出。
Windows应用程序是基于WindowsForms(Windows窗体)的应用程序,是一种基于图形用户界面(GraphicalUserInterface,GUI)的应用程序,一般是在用户计算机本地运行的。
本书案例采用的是控制台应用程序或Windows应用程序。
2..NET框架的两个实体
.NET框架包括两个主要组件,即公共语言运行库和.NETFramework类库。
(1)公共语言运行库
公共语言运行库又称公共语言运行时(CommonLanguageRuntime,CLR)或公共语言运行环境,是.NET框架的底层。
其基本功能是管理用.NET框架类库开发的应用程序的运行并且提供各种服务。
.NET将开发语言与运行环境分开,一些基于.NET平台的所有语言的共同特性(如数据类型、异常处理等)都是在CLR层面实现的,在.NET上集成的所有编程语言编写的应用程序均需通过CLR才能运行,使用CLR的一大好处是支持跨语言编程,凡是符合公共语言规范(CommonLanguageSpecification,CLS)的语言所编写的对象都可以在CLR上相互通信,相互调用。
例如,用C#语言编写的应用程序,也能够使用VisualBasic.NET编写的类库和组件,反之亦然,这大大提高了开发人员的工作效率。
(2).NETFramework类库
.NETFramework类库是一个面向对象的可重用类型集合,该类型集合可以理解成预先编写好的程序代码库,这些代码包括一组丰富的类与接口,程序员可以用这些现成的类和接口来生成.NET应用程序、控件和组件。
例如,Windows窗体类是一组综合性的、可重用的类型,使用这些类型可以轻松、灵活地创建窗体、菜单、工具栏、按钮和其他屏幕元素,从而大大简化Windows应用程序的开发难度。
程序员可以直接使用类库中的具体类,或者从这些类中派生出自己的类。
.NET框架类库是程序员必须掌握的工具,熟练使用类库是每个程序员的基本功。
.NET支持的所有语言都能使用类库,且它们使用类库的方式是一样的。
3.Microsoft中间语言和即时编译器
.NET框架上可以集成几十种编程语言,这些编程语言共享.NET框架的庞大资源,还可以创建由不同语言混合编写的应用程序,因此可以说.NET是跨语言的集成开发平台。
图1.2.NET代码执行流程示例
如图1.2所示,.NET框架上的各种语言分别有各自不同的编译器,编译器向CLR提供原始信息,各种编程语言的编译器负责完成编译工作的第一步,即把源代码转换为用Microsoft中间语言(MicrosoftIntermediateLanguage,MSIL)表示的中间代码。
MSIL是一种非常接近机器语言的语言,但还不能直接在计算机上运行。
第二步编译工作就是将中间代码转换为可执行的本地机器指令(本地代码),在CLR中执行,这个工作由CLR中包含的即时编译器(JustInTime,JIT)完成。
1.1.2认识C#语言
C#语言是微软公司专门为.NET平台量身打造的程序设计语言,是一种强大的、面向对象设计方法的程序设计语言,它是为生成运行在.NET框架上的企业级应用程序而设计的。
C#看起来与Java有着惊人的相似,它包括诸如单一继承、接口等特征以及与Java几乎同样的语法和编译成中间代码再运行的过程。
但是C#与Java仍然有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETWindows网络框架的主角。
微软对C#的定义如下:
C#是一种安全、现代、简单的由C和C++衍生而来的面向对象编程语言。
它根植于C和C++语言之上,并可以立即被C和C++的使用者所熟悉。
设计C#的目的就是综合VisualBasic的高生产率和C++的行动力,目前,C#已经成为Windows平台上软件开发的绝对主流语言。
作为.NET的核心语言,C#有很多优点,如完全面向对象的设计、强大的类型安全、自动的垃圾回收功能、组件技术、跨平台异常处理、版本处理技术等。
大家将在后续的C#学习与使用中深入体会这些优点。
1.2VisualStudio.NET集成开发环境简介
强大的.NET平台必须有强大的集成开发环境(IDE)来支持,微软专门提供了VisualStudio.NET(简称VS.NET)作为.NET平台的集成开发环境,它集成了.NET框架,通过VS.NET可以快速方便地开发.NET应用程序。
1.2.1VisualStudio.NET起始页
选择【开始】|【程序】|MicrosoftVisualStudio2010|MicrosoftVisualStudio2010命令,打开如图1.3所示的VisualStudio2010主界面,其中默认显示的是起始页。
启动后是否显示起始页,可以选择【工具】|【选项】命令,在弹出的对话框中选择【启动】选项并进行设置。
VisualStudio2010起始页主要由标题栏、菜单栏、工具栏、最近使用的项目、最新新闻、入门、工具箱等组成。
其中,标题栏、菜单栏、工具栏与Windows标准窗口类似,这里不再介绍,其他部分的含义介绍如下。
●最近使用的项目:
列出了最近创建或打开过的项目列表,列表中显示的项目数目可以选择【工具】|【选项】命令,在弹出的对话框中选择【常规】选项并进行设置。
项目窗格的左下方有两个选项,【打开】用于打开已有的项目,【新建】用于创建新项目。
●最新新闻:
可以设置RSS源,默认显示MSDN网站上的最新技术文章列表,该功能需在联网的条件下使用。
●入门:
用于了解VisualStudio2010概述和VisualC#的新增功能等。
●工具箱:
工具箱提供了进行窗体应用程序开发所必需的控件。
通过工具箱,开发人员可以方便地进行可视化的窗体设计,简化程序设计的工作量。
图1.3VisualStudio2010专业版起始页
1989年,求伯君在深圳的一个小旅馆里一个人孤独地完成了举世震惊的WPS。
但到了面向对象程序设计年代,单个程序员单枪匹马闯天下的英雄时代已经一去不复返了。
2011年10月24日,求伯君辞去其在金山软件的所有执行性职务,正式退休,这也标志着“把硬盘从机器上卸下来,带回家去”的老一代程序员时代正式结束。
今天的软件如此庞大,需要大批程序员通力合作方可完成,因此团队管理功能就显得非常重要了。
1.2.2VisualStudio.NET集成开发环境
当创建或打开一个项目以后,将进入如图1.4所示的VisualStudio2010的开发环境界面。
而在实际操作时看到的界面可能会与图1.4有所不同,因为VisualStudio2010的开发环境布局可以定制。
VisualStudio2010典型主界面包含用户编辑区、【工具箱】窗口、【解决方案资源管理器】窗口、【属性】窗口以及【输出】窗口等。
它们的功能分别介绍如下。
1.用户编辑区
用户编辑区是起始页、设计器视图、代码视图及帮助内容的显示区域,主界面中的这些窗口可以通过窗口上部的选项卡进行切换。
用户编辑区允许用户打开某个文件并对文件进行编辑。
如果用户打开了多个文件,那么这些文件将以选项卡的方式显示在用户编辑区的上部,选项卡的标题即为文件名。
如果选项卡的标题后面带一个“*”号,则表示这个文件已被修改,但尚未保存。
在用户编辑区中主要有两种视图:
设计视图和代码视图。
选择【视图】|【代码】命令或选择【视图】|【设计器】命令,或者选择窗口上部的选项卡,可在代码视图和设计视图之间进行切换。
如图1.4所示为设计视图,设计视图用来设计Windows窗体或Web窗体。
当创建Windows窗体应用程序或Web应用程序时,会默认打开设计视图,在该视图中可以为Windows或Web界面添加并设置控件。
图1.4VisualStudio2010IDE窗口
双击设计视图中的窗体或窗体中的任意控件,都会打开代码视图,如图1.5所示。
代码视图是一个纯文本编辑器,在其中可以进行常见的文本编辑操作,如定位、选定、复制、剪切、粘贴、移动、撤销、恢复等操作。
VS.NET的代码编辑器以不同的颜色显示代码中不同含义的内容,如以蓝色显示关键字,以绿色显示注释,以蓝绿色显示类名,以棕红色显示字符串。
控制台应用程序只有代码视图。
图1.5代码视图
2.【工具箱】窗口
用户编辑区左侧是【工具箱】窗口,如图1.4所示。
工具箱通常与服务器资源管理器共享一个屏幕区域,可以通过窗口下方的选项卡进行切换。
工具箱是控件的容器,里面分类放置了很多用于设计程序界面的常用控件,可用于向Windows窗体应用程序或Web应用程序添加控件。
工具箱中显示的控件会根据程序员所使用的不同设计器或编辑器而发生变化。
整个工具箱由多个选项卡组成,每个选项卡中包含一组控件。
可以通过单击选项卡前面的“+”或“-”来展开或者折叠选项卡。
服务器资源管理器是VS.NET的服务器开发管理控制台,帮助程序员访问和处理计算机上所有具有权限的资源。
3.【解决方案资源管理器】窗口
用户编辑区右侧是【解决方案资源管理器】窗口。
解决方案资源管理器通常与类视图、动态帮助共享一个屏幕区域,可以通过窗口下方的选项卡进行切换,如图1.6所示。
VS.NET提供了两类容器,帮助用户有效地管理开发工作所需的项(如文件夹、文件、引用和数据连接),这两类容器分别叫做解决方案和项目。
使用.NET开发的应用程序叫做解决方案,一个解决方案可以包括一个或多个项目,一个项目是一个完整的程序模块,用于解决一个独立的问题,一个项目通常包含多个项。
解决方案资源管理器以树状目录的形式列出了当前解决方案中的项目和文件,如图1.6所示。
开发应用程序时,该树状目录可帮助用户管理解决方案中的项目和文件。
解决方案资源管理器类似于一个文件夹,它的操作也类似于Windows文件夹操作,双击解决方案资源管理器中的某个文件将打开这个文件,通过拖放操作可以实现文件的复制和移动操作,还可以删除或者重命名文件。
解决方案包含多个项目时,其中有且仅有一个项目作为默认的启动项目,启动项目是程序执行的入口,启动项目的文件名在解决方案资源管理器中以粗体显示。
4.【属性】窗口
用户编辑区的右侧下方是【属性】窗口,如图1.7所示。
它专门用于设置当前选定的窗体或控件的属性。
属性是窗体和控件对象的静态特征描述,如某控件的颜色、名称、位置等。
【属性】窗口中显示的内容会随着选择对象的不同而发生变化。
图1.6【解决方案资源管理器】窗口
图1.7【属性】窗口
5.其他窗口
在用户编辑区下方默认显示了很多其他窗口,图1.8是【输出】、【测试结果】、【错误列表】、【命令窗口】等4个比较常用窗口中的【输出】窗口。
【输出】窗口供系统向用户输出一些用户需要的信息,例如,程序在组建过程中所产生的输出信息。
【错误列表】窗口可以显示在编辑和编译代码时产生的“错误”、“警告”和“消息”,可以查找智能感应(IntelliSense)所标出的语法错误等。
双击任意错误信息项将会打开出现问题的文件,然后移到相应的问题行。
可以使用“错误”、“警告”和“消息”按钮选择要显示哪些项。
图1.8【输出】窗口
上述子窗口大部分可以通过【视图】菜单打开,一些与调试相关的窗口可以通过【调试】|【窗口】命令打开。
1.2.3窗口布局调整
VS.NET
IDE中的子窗口可以根据需要进行调整、合并,从而定制出符合用户使用习惯的IDE窗口布局。
IDE中有两类窗口:
一类是主区域显示窗口,另一类是在主区域周围显示的子窗口。
不管哪类窗口,当若干个窗口共享同一屏幕区域时,该屏幕区域内的窗口以选项卡的形式叠放在一起,在最前端显示的窗口为当前活动窗口,可以通过选择该屏幕区域边框上的选项卡来切换各个窗口。
1.窗口位置移动
主区域周围显示的子窗口标题栏的右侧有一个【关闭】按钮和一个图钉按钮。
单击【关闭】按钮将关闭窗口;
单击图钉按钮,窗口将在自动隐藏状态和显示状态之间切换。
当图钉按钮纵向显示时,窗口为显示状态,有停靠显示和浮动显示两种方式,默认为停靠方式。
这些子窗口可以移动,用鼠标指向一个窗口的标题栏,拖动该窗口,在该窗口可以停靠的位置将会显示出导航按钮,用鼠标拖动窗口至导航按钮,该窗口将要停靠的位置会以半透明蓝色背景显示,例如,拖动服务器资源管理器窗口到主界面中间时的状态如图1.9所示。
2.窗口自动隐藏
程序员在编写代码或者设计较大窗体时,往往希望用户编辑区能够尽量最大化,这时可以利用VS.NET提供的窗口自动隐藏功能隐藏主区域周围的子窗口,如隐藏【工具箱】和【属性】窗口等,以此来扩大用户编辑区域。
具体方法如下:
单击窗口标题栏上的图钉按钮,当其变为横向显示时,窗口为自动隐藏状态。
窗口自动隐藏后,仅在界面边框上显示一个图标,把鼠标移到这个图标上面,被隐藏的窗口将自动弹出来。
图1.9子窗口移动示例
用户可自行定制符合个人使用习惯的IDE窗口布局。
“不实战,不入行”。
说了这么多,还是边学边做、边做边学吧。
1.3控制台应用程序
“Hello,world!
”程序是指在计算机屏幕上输出“Hello,world!
”这行字符串的计算机程序。
所有编程的第一步都始于此,堪称经典之中的经典。
这个例程因在BrianKernighan和DennisM.Ritchie合著的《TheCProgrammeLanguage》中使用而流行。
因为它简洁、实用,并包含了一个程序所应具有的一切,因此为后来的编程类图书的作者提供了范例,一直沿用至今。
甚至传说,一个老程序员退休之后决定学习书法,于是买来上好的毛笔、宣纸、墨汁,饱蘸浓墨,在纸上一气呵成:
Hello,world!
1.3.1基础知识
1.3.1.1C#应用程序文件夹结构
下面来看看C#应用程序文件夹结构。
在VS.NET提供的【解决方案资源管理器】窗口中,可以管理解决方案中包含的各种文件,如图1.10所示。
图1.10【解决方案资源管理器】窗口
1.解决方案文件夹
新建项目时,VS.NET已经在指定的保存项目文件夹下创建了一个与项目名同名的文件夹Hello,这是解决方案文件夹。
解决方案可以包含一个或多个项目,本书的例子基本上都是单项目解决方案。
2.项目文件夹
解决方案文件夹Hello下有一个Hello文件夹,这是项目文件夹。
3.解决方案文件
解决方案文件夹Hello下的Hello.sln文件是解决方案文件,它保存了解决方案包含的所有项目的信息以及解决方案项等内容,打开这个文件可以打开整个解决方案。
4.Program.cs文件
Program.cs文件位于项目文件夹Hello中,是程序源文件,编写的代码就在该文件中,在C#系统中以cs作为源文件的扩展名。
5.Hello.exe
Hello.exe文件位于文件夹bin\Debug中,是项目编译运行成功后生成的可执行文件,可以直接执行。
1.3.1.2C#程序结构
C#程序的组成要素如下。
(1)命名空间:
命名空间包含一个或多个类。
(2)类:
C#中程序的变量与方法必须包含在类中(即用类来组织变量与方法)。
(3)方法:
方法必须包含在某一个类中,作为类的一个成员,每个程序有且仅有一个Main()方法。
(4)语句:
语句是C#应用程序中执行操作的命令。
C#中的语句必须用分号“;
”结束。
语句书写方便,可以在一行中书写多条语句,也可以将一条语句书写在多行上。
(5)关键字:
关键字也叫保留字,是对C#有特定意义的字符串。
关键字在VS.NET环境的代码视图中默认以蓝色显示。
例如,代码中的using、namespace、class、static、void、string等均为C#的关键字。
(6)大括号:
在C#中,括号“{”和“}”是一种范围标志,表示代码层次的一种方式。
大括号可以嵌套,以表示应用程序中的不同层次。
例如,在下面1.3.1.3小节中“3.程序注释”的案例中,命名空间“Hello”下的大括号表示该命名空间的代码范围,类“Program”下的大括号表示该类的代码范围,方法“Main”下的大括号表示该方法的代码范围。
大括号必须成对出现,程序结构才层次分明。
方法包含于类中,类包含于命名空间中。
1.3.1.3C#程序书写格式
统一的结构、规范的书写格式可使程序层次分明,结构清晰,有利于提高程序的可读性,是一种良好的编程习惯。
1.缩进
除了大括号外,缩进也是用来表示代码结构层次的一种方法。
缩进在程序中虽然不是必需的,但却可以清晰地表示出程序的结构层次,因此在程序设计中应该使用统一的缩进格式书写代码。
在一般情况下,命名空间及其对应的大括号顶格书写,类及其对应的大括号向内缩进一个制表位,类中的变量、方法及其对应的大括号向内缩进一个制表位,方法中的语句向内缩进一个制表位。
实际上,在VS.NETIDE中系统会自动进行缩进调整。
2.字母大小写
C#是对字母大小写敏感的语言,它把同一字母的大小写当作两个不同的字符对待。
例如,大写“A”与小写“a”对C#来说是两个不同的字符。
尤其值得注意的是,很多习惯于C++或C语言的人可能会误把Main写成main,此时C#会把main当成是不同于Main的另一个名称。
3.程序注释
编写代码非常重要的一项工作就是为代码写注释,注释是给程序员看的,用于提高程序的可读性,它不会被编译,也不会生成可执行代码。
C#中的注释方式有如下3种。
●单行注释,以双斜线“//”开始,一直到本行尾部,均为注释内容。
●多行注释,以“/*”开始,以“*/”结束,可以注释多行,也可以注释一行代码中间的一部分,比较灵活。
●文档注释,以“///”开始,若有多行文档注释,每一行都以“///”开头。
例如:
1usingSystem;
2namespaceHello//定义命名空间
3{
4///<
summary>
5///该程序向控制台输出两行信息
6///作者:
Deng
7///日期:
2012-12-4
8///<
/summary>
9classProgram//定义类
10{
11staticvoidMain(string[]args)//定义方法
12{
13/*
14此处添加代码
15*/
16Console.WriteLine("
Hello,world!
"
);
17Console.ReadLine();
18}
19}
20}
1.3.1.4Console类
Console类是System命名空间中预定义的一个类,用于实现控制台的基本输入/输出。
控制台的默认输出是屏幕,默认输入是键盘。
Console常用的方法主要有Read()、ReadLine()、Write()和WriteLine(),如表1.1所示。
其中,Write()方法和WriteLine()方法都用于向屏幕输出方法参数所指定的内容,不同的是,WriteLine()方法除可输出方法参数所指定的内容外,还会在结尾处输出一个换行符,使后面的输出内容从下一行开始输出。
Read()方法用于从键盘读入一个字符,并返回这个字符的编码。
ReadLine()方法用于从键盘读入一行字符串,并返回这个字符串。
表1.1Console类常用的方法
方法名称
接受参