(2.1)-第1章C#程序设计简介_第1页
(2.1)-第1章C#程序设计简介_第2页
(2.1)-第1章C#程序设计简介_第3页
(2.1)-第1章C#程序设计简介_第4页
(2.1)-第1章C#程序设计简介_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1C#程序设计语言2课程目标C#语言

熟悉语法基本开发技术掌握基本的.net开发技术,包括Windows及Web应用程序要用的基本技术专题技术

.net中比较重要的专题技术,结合GIS进行底层开发编程思想开发习惯

深入理解C#并在实际开发中养成良好的开发习惯,包括使用重构、设计模式等3教学内容及时间安排序号教学内容学时1C#程序设计简介3学时2C#语言基础6学时3面向对象的C#语言6学时4深入理解C#6学时5Windows应用程序开发6学时6绘图及图像处理6学时7文件操作6学时8数据库应用6学时9网络编程3学时10多线程编程3学时11ASP.NET应用开发3学时4教材及参考资料教材:C#语言程序设计基础(第3版)[M],郑宇军等,清华大学出版社,2014年最新课件参考材料:1、帮助文档

2、开发论坛5课程形式与考核课程形式课堂讲解、编程、讨论及汇报课下编程练习考核方式闭卷考平时占20%期中占20%期末占60%6第一章C#程序设计简介7第一章C#程序设计简介01程序设计语言概述04VisualC#开发环境03.NET开发平台01C#语言简介05C#快速入门801程序设计语言概述计算机语言软件是由一系列的计算机程序所组成的。计算机程序就是一系列指令,也称计算机语言。计算机语言是人与计算机之间通讯的语言。程序员利用计算机语言根据算法编写指令,使计算机完成相应的功能。从1946年世界上诞生第一台计算机起,在60余年间计算机技术迅速发展,程序设计语言经历了四个阶段:1、机器语言2、汇编语言3、面向过程的高级语言4、面向对象的程序设计语言高级语言低级语言面向机器的语言901程序设计语言概述机器语言50年代出现机器语言和汇编语言。由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。计算机发展的初期,软件工程师们只能用机器语言来编写程序。一个机器语言程序段(计算26+36=):优点:能被计算机直接识别和执行,执行速度快缺点:通篇是0和1,可读性太差,编程不方便,指令难记,容易出错且不易修改这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟。00111110

00011010‘26

11111110

00100100

’36

11010011

00101111011101101001程序设计语言概述汇编语言汇编语言就是符号化的机器语言,既将机器指令映射为一些可以被人读懂的助记符,如用记忆符ADD代表加法指令,OUT代表输出指令等。前述的机器语言程序段,改用汇编语言可写成:优点:编程较为方便。缺点:但需要“翻译”,仍脱离不开具体机器的指令系统,它所用的指令符号与机器指令基本上是一一对应的,编程效率不高,编程人员需要熟悉计算机结构,因此一般人很难使用。此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。LDA,26ADDA,36

OUT(48),A

HALT1101程序设计语言概述面向过程的高级语言基本抽象(表达式抽象和基本控制抽象)、数据抽象表达式抽象将机器计算表达式的操作细节对程序设计者隐藏起来,使我们可以写出如下计算语句:C=A+B。所谓控制抽象,就是使控制流程结构化,并且不必对单独控制点命名或编号。这样我们可以写出下列语句:IFX=ZTHENTY:=AELSEY:=B。所谓数据抽象,就是将数据的表示细节从定义在该数据上的抽象操作中分离出来。60年代高级语言的出现大大简化了程序设计,高级语言与人类自然语言和数学式子相当接近,而且不依赖于某台机器,通用性好。如C、FORTRAN、BASIC、PASCAL等,如前述的程序用BASIC语言编写为:

LETA=26+36

PRINTA

END优点:编程十分方便,不必关心机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。面向过程的语言存在的问题:需要“翻译”,把高级语言编写的程序(称源程序)翻译成机器语言程序(称目标程序)。可重用性差、数据安全性差、难以开发图形界面。1201程序设计语言概述面向过程的高级语言基本抽象(表达式抽象和基本控制抽象)、数据抽象表达式抽象将机器计算表达式的操作细节对程序设计者隐藏起来,使我们可以写出如下计算语句:C=A+B。所谓控制抽象,就是使控制流程结构化,并且不必对单独控制点命名或编号。这样我们可以写出下列语句:IFX=ZTHENTY:=AELSEY:=B。所谓数据抽象,就是将数据的表示细节从定义在该数据上的抽象操作中分离出来。60年代高级语言的出现大大简化了程序设计,高级语言与人类自然语言和数学式子相当接近,而且不依赖于某台机器,通用性好。如C、FORTRAN、BASIC、PASCAL等,如前述的程序用BASIC语言编写为:

LETA=26+36

PRINTA

END优点:编程十分方便,不必关心机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。面向过程的语言存在的问题:需要“翻译”,把高级语言编写的程序(称源程序)翻译成机器语言程序(称目标程序)。可重用性差、数据安全性差、难以开发图形界面。1301程序设计语言概述面向对象的高级语言80年代,人们提出了面向对象的程序设计方法OOP(ObjectOrientedProgramming)。所谓的对象就是系统中的要素,各要素之间的联系用继承关系和信息关系来描述。面向对象的思想将客观事物看作具有属性和方法的对象,对象与对象之间通过消息(称作事件)进行通讯,消息激发对象作出相应的反映。客观世界或其中一部分可看作是由各种对象组成的一个运动的有机整体。如VisualBasic、C++(面向过程、面向对象)、C#、Java等。优点程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过继承与多态,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。1402C#语言简介

引入

C#,读作CSharp,是微软公司设计的一种编程语言,是从C和C++基础上开发出来的一种简单、面向对象和类型安全的编程语言,并且能够与.NET

Framework完美结合。注意1502C#语言简介C#创始人

安德斯·海尔斯伯格(AndersHejlsberg,1960.12~),丹麦人,TurboPascal编译器的主要作者,Delphi和C#之父,同时也是·NET创立者。1602C#语言简介CC++JavaVisualC#发展历史C语言1973年由贝尔实验室的DennisRitchie开发的,最初作为UNIX操作系统的开发语言C++20世纪80年代初由贝尔实验室的Bjarne

Stroustrup开发的,在C语言的基础上提供了面向对象编程的特性;人们需要迅速地、正确地、经济地建立软件,部分可以利用对象,来复用软件组件JavaSun于1991年开始的一个内部公司研究项目:开发一个基于C++的语言,即Java;Sun于1995年正式推出Java,由于Java可用在Web页面中增加动态内容(即交互性、动画等),因此一经推出,立刻引起了企业界的兴趣C#2000年微软推出;由AndersHejlsberg和ScottWilramuth领导的小组开发;为什么要开发C#呢?1702C#语言简介C#的发展历史2015年C#6.0(.NET4.6)VisualStudio.NET2015语法糖(Syntacticsugar)2012年C#5.0发布(.NET4.5)VisualStudio.NET2012异步编程2010年C#4.0发布(.NET4.0)VisualStudio.NET2010动态编程2007年C#3.0发布(.NET3.5)VisualStudio.NET2008语言集成查询(LINQ)2005年C#2.0发布(.NET2.0)VisualStudio.NET2005泛型编程新概念2002年C#1.0发布(.NET1.0)VisualStudio.NET2002纯粹的面向对象2000年C#语言发布预览版1802C#语言简介C#的特点封装、继承、多态通过.NET框架运行,不直接操作内存1902C#语言简介C#与C++C#禁止使用指针和指针算法(除了在不安全的代码块中);C#删除了预处理器的宏(但保留了条件编译和#defined常数),复杂的宏在以不希望的方式扩展到复合输入变元中时,会出现错误;C#要求在引用变量的值之前,必须先显示声明该变量,并用一个初始值进行初始化;C#使用switch…case语句,为了防止程序员疏忽,switch语句中的每个case从句都必须有一个闭合的break命令;C#删除了全局函数,迫使用户进行面向对象的编程,如果只有一个静态成员,那么程序中的每个函数都必须是类的一个成员,就连开始的Main()函数也定义为一个类的成员;在编译C#类库时,编译器会自动把它们显示为可以由客户应用程序重使用的组件,用户不会混淆GUID和ATL宏;C#支持使用WindowsForms快速开发图形化用户界面,用户不必编写代码来处理OnPaint事件;C#标准化包含类定义和类执行的单个文件的使用,把类的定义和其执行放在一个文件中,使类更易于维护。2002C#语言简介C#与JAVA相似性:面向对象,C++JAVAC#跨平台特性:Java可以跨越多个不同种类的操作系统平台,比如Windows、Linux、Unix等,必须实现在该操作系统上的Java运行时环境JRE才行;C#的跨平台则是建立跨Windows平台的基础上的,需有.net程序的运行时环境(.netframework)语法特性:Java抛弃了指针,使用了包(package)的概念;C#没有完全抛弃指针(在unsafe状态下还可以操作指针),对于类的管理采用了名称空间(namespace)的概念。

IDE(集成开发环境)方面:Java的IDE是非常多,从庞大的Jbuilder到小巧的Jcreator,还有可以扩充的Eclipse;C#的IDE不多,除了微软自己的VS.NET之外,还有Borland的C#Builder企业开发方面:JAVA开发框架成熟,可采用EJB、SOA等解决方案;C#限制于IIS+Windows的开部署框架。2103.NET开发平台Microsoft®.NET分布式系统平台通用的编程模型包括客户端、服务器和应用服务开发工具2203.NET开发平台什么是.NET微软定义:.NETisa“revolutionarynewplatform,builtonopenInternetprotocolsandstandards,withtoolsandservicesthatmeldcomputingandcommunicationsinnewways”.即:.NET=新平台+标准协议+统一开发工具.NET代表一个集合,一个环境,一个可以作为平台支持下一代Internet的可编程结构。2303.NET开发平台.NET框架.NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境。.NET框架的设计目标是让开发人员更容易地建立Web应用程序和Web服务,使得Internet上的各应用程序之间,可以使用Web服务进行沟通。.NET框架包括三个主要组成部分公共语言运行时环境(CommonLanguageRuntime,CLR)服务框架(ServicesFramework)两类应用模板,即传统的Windows应用程序模板(WinForms)和基于ASP.NET的面向Web的应用程序模板(WebForms和WebServices)。2403.NET开发平台.NETFramework体系结构VisualStudio.NETWindowsCOM+Services公共语言运行时(CLR)基类库(BaseClassLibrary)ADO.NETandXMLASP.NETWindowsForms公共语言规范(CommonLanguageSpecification)VBC++C#JScript…CLSCLR操作系统.NETFramework框架各种语言FCL2503.NET开发平台.NETFramework体系结构通用语言规范CLS(CommonLanguageSpecification)规定所有.NET语言都应遵循的规则,生成可与其他语言互操作的应用程序。所有语言源程序都经过此编译成中间语言MSIL(MicrosoftIntermediateLanguage)代码,MSIL代码是独立于机器、操作系统和CPU的。类库FCL(FrameworkClassLibrary)一组DLL(DynamicLinkLibrary)程序集,是一个由Windows软件开发工具包(SDK)中包含的几千个类、接口和值类型组成的库。该库提供对系统功能的访问,是建立.NETFramework应用程序、组件和控件的基础。公共语言运行时CLR(CommonLanguageRuntime)提供即时编译器JIT(JustInTime)、内存管理、异常管理和调试等方面的服务,在某台计算机上首次运行时JIT将MSIL代码编译成机器代码,这就是“运行时”的意思。2603.NET开发平台统一的编程API:NETFramework类库类库FCL(FrameworkClassLibrary)是一组DLL程序集,FCL包含的几千个类、接口和值类型从逻辑上把相关类(和类型)组合成组,称为命名空间namespace。常用命名空间说明System.Drawing

包含处理图形和绘图、图形打印的类System.Data

与数据库进行通讯和处理数据的类System.IO管理对文件和流的同步和异步访问的类System.Windows处理基于窗体的窗口的创建的类System.Reflection从程序集读取元数据的类System.Threading用于多线程编程的类System.Collections

定义各种对象集的接口和类2703.NET开发平台公共语言运行时(CLR)设计目标简化开发:安全性、内存管理简化应用程序部署基类库支持多种语言相当于Java中的虚拟机2803.NET开发平台.NET程序执行原理.NET程序被编译两次,第一次编译很慢。C#、VB等任何一种CLS兼容的语言源程序首先被编译成中间语言MSIL(MicrosoftIntermediateLanguage)的伪代码。IL代码与资源一起作为一种称为程序集的可执行文件存储在磁盘上,通常具有的扩展名为.exe或.dll(库)。第二次编译较快,这个应用程序首次被运行的时候,JIT即时编译器将MSIL代码编译成本地机器代码用于执行。所以.NET开发的程序更适于安装到不同的机器运行。MSIL+元数据机器代码代码被执行CLR第一次编译第二次编译语言编译器.NET源代码2903.NET开发平台C#与.NETFramework.NETFramework(运行平台)VisualStudio(开发工具)VB.NETC#VC++JScript….NETFramework

类库(CLR)开发语言.NETFramework平台上的一种开发语言30VisualC#程序与.NETFramework关系执行C#程序时,程序集将加载到CLR中,这可能会根据清单中的信息执行不同的操作。然后,如果符合安全要求,CLR就会执行实时(JIT)编译以将IL代码转换为本机机器指令。CLR还提供与自动垃圾回收、异常处理和资源管理有关的其他服务。由CLR执行的代码有时称为“托管代码”,它与编译为面向特定系统的本机机器语言的“非托管代码”相对应。03.NET开发平台3103.NET开发平台发展历程3203.NET开发平台版本特性.NETFramework2.0CLR2.0,对ADO.NET和ASP.NET框架的增强.NETFramework3.0CLR2.0,新增WPF(WindowsPresentationFoundation),WCF(WindowsCommunicationFoundation)、WF(WorkflowFoundation)和CardSpace框架

.NETFramework3.5新增语言集成查询(LINQ),新增ADO.NETEntityFramework数据访问框架.NETFramework4.0CLR4.0,新增任务并行库用于并行计算,并行LINQ.NETFramework4.5CLR4.0,新增异步方法3303.NET开发平台版本对应关系C#版本.NETFramework版本CLR版本VisualStudio版本Windows默认版本C#1.0.NETFramework1.0CLR1.0VisualStudio2002WindowsXPC#1.2.NETFramework1.1CLR1.1VisualStudio2003WindowsServer2003WindowsServer2003C#2.0.NETFramework2.0CLR2.0VisualStudio2005C#3.0.NETFramework2.0

.NETFramework3.0

.NETFramework3.5CLR2.0VisualStudio2008

VisualStudio2010WindowsVistaWindowsServer2008Windows7C#4.0.NETFramework4.0CLR4.0VisualStudio2010C#5.0.NETFramework4.5CLR4.0VisualStudio2012

VisualStudio2013Windows8WindowsServer2012C#6.0.NETFramework4.6CLR4.0VisualStudio2015Windows103403.NET开发平台VS2015的集成开发环境3503.NET开发平台安装VS2015VS2015的安装要求下载VisualStudio2015(社区版)的安装镜像文件/zh-cn/downloads/visual-studio-2015-downloads-vs(免费版)专业版、企业版需秘钥名称说明处理器1.6GHz处理器,建议使用2.0GHz双核处理器RAM1G,建议使用2G内存可用硬盘空间所有驱动器上需要9G(典型安装)或者20G(全部安装)的可用空间DVD-ROM使用(或者使用虚拟光驱)显示器1024*768,增强色16位操作系统及所需补丁Windows7(SP1)、Windows8、Windows8.1、WindowsServer2008R2SP1(x64)、WindowsServer2012(x64)、Windows103603.NET开发平台第一个C#程序文本编辑器(如记事本)+C#编译器VisualStudio开发环境(2012/2013)示例:输出“HelloWorld”3703.NET开发平台C#程序的基本结构命名空间类关键字标识符Main方法C#语句注释usingSystem;usingSystem.Collections.Generic;using

System.Linq;usingSystem.Text;namespaceHello_World{

classProgram{

staticvoidMain(string[

]args){//输出内容

Console.WriteLine("HelloWorld");

Console.ReadLine();

}}}命名空间类Main方法注释语句标识符关键字命名空间

概念

C#程序中的一种代码组织形式,主要用来标识类的可见范围。namespace命名空间名称语法引用using

命名空间名;

分号一定不能少!!!

03.NET开发平台引用外部程序集C#编译器:/referenceVisualStudio:“项目添加引用”什么是类?一种数据结构,存储数据成员、方法成员和其它类等内容,便于调用…class

类名{//类中的代码}定义类的关键字类的名称类?语法记住03.NET开发平台C#关键字intpublicthisfinallybooleanabstractcontinuefloatlongshortthrowreturnbreakforforeachstaticnewinterfaceifgotodefaultbytedocasevoidtryswitchelsecatchprivatedoubleprotectedwhilecharclassusing关键字03.NET开发平台关键字是C#语言中已经被赋予特定意义的一些单词,开发程序时,不可以把这些关键字作为命名空间、类、方法或者属性等来使用。标识符类名变量名标识符方法名数组名……名字1、字母2、下划线‘_’首字母任意多的:1、数字2、字母3、下划线‘_’其余部分03.NET开发平台标识符可以简单地理解为一个名字,主要用来标识类名、变量名、方法名、属性名、数组名等各种成员。C#的标识符名称命名规则:所有的标识符只能由字母、数字和下划线这3类字符组成,且第一个字符必须为字母或下划线。标识符中不能包含空格、标点符号、运算符等其他符号。标识符严格区分大小写。标识符不能与C#关键字名相同。标识符不能与C#中的类库名相同。√1abca12_cstaticvoid

Main(string[]args){}staticvoidMain(){}staticintMain(string[]args){}staticint

Main(){}Main方法Main的首字母必须大写返回值可以是void或者int命令行参数可选Main方法必须定义为static语法基本要求03.NET开发平台

Console

.WriteLine("HelloWorld");Console.ReadLine();

C#语句

概念

C#语句实质上就是实现各种功能的C#代码。HelloWorld关键代码回顾:控制台类03.NET开发平台注释行注释12块注释03.NET开发平台用VisualStudio设计WinForm程序04VisualC#开发环境界面设计(Shift+F7)(插入对象,设其属性)(对象窗及属性窗)程序代码(F7)(双击对象,填写代码)(代码窗)或者用属性窗的(事件)运行按F5(或点启动按钮)或按Ctrl+F5保存程序文件.cs工程文件.csproj解决方案.sln其他辅助文件编译/运行发布直接复制到IIS目录窗体设计区/代码编写区菜单栏解决方案资源管理器工具栏错误列表输出属性工具箱标题栏04VisualC#开发环境标准工具栏调试工具栏工具栏04VisualC#开发环境面向对象程序的核心概念04VisualC#开发环境对象属性(property)如:label1.Textthis.BackColor方法(method)如:xxxx.SetBounds(x,y,w,h)如:MessageBox.Show(“hello”)事件(event)如:Clickthis.button1.Click+=newSystem.EventHandler(this.button1_Click);或简写为this.button1.Click+=this.button1_Click几点注意使用(导入)usingSystem.Windows.Forms;命名空间namespacexxxxxx{…}继承(用冒号表示)publicclassForm1:System.Windows.Forms.Form自动生成的代码对象的生成(new)事件的注册(+=)常见的应用程序类型04VisualC#开发环境控制台程序

Helloworld.csWindows应用程序(又称WinForm应用)可视化的设计窗体事件驱动的编程机制WPF程序(WindowsPresentationFoundation)在Windows上运行使用XML(xmal)来定义界面Web应用程序在.NET中也称ASP.NET应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论