南华大学计算机学院 软件工程系 QQ讨论群:

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

程序设计基础 第 2 章 解题要有程序 主讲:吴献彩 Tel : QQ :
邱锡鹏 复旦大学计算机科学技术学院 Text Books  “Dragon book”  Compilers: Principles, Techniques, and Tools (2nd Edition)  Alfred V. Aho;Monica S.
第1章 Java语言概述.
硕士论文开题报告 煤炭企业物流信息系统的 研究与设计 指导老师: 学生姓名: 学 号:
1.2 Java程序开发与运行环境 Java程序文件类型 根据计算结构的不同,Java程序可以划分为:
授课教师:江星玲 1.
第一章 認識程式語言.
第二章 工程建设中的测量工作与信息管理.
Java程序设计教程 第一讲 Java概述.
第 2 章 初探 C++.
四資二甲 第三週作業 物件導向程式設計.
第一章 認識 Visual Basic 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載
第7章 C#函數與.NET Framework類別函數庫
動畫與遊戲設計 遊戲開發工具 程于芳 老師
網頁技術簡介.
課程名稱:程式設計 授課老師:________
第13章多项目设计与开发.
面向对象程序设计 (Visual C# .NET)
C#程序设计 10软件1、2班 王槐彬 计算机工程学院.
2017年9月14日12时3分 DEV349 Visual C 无缝集成,无限潜力 李建忠 微软特约讲师 上海祝成科技
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
第1章 程式語言與Visual Basic的基礎
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
第ㄧ章 認識 VB 2008 與主控台應用程式 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
第一章 認識Visual C 環境架構 1-1 認識Visual C Visual Studio 概觀
BLANK overview.
Microsoft .NET 第4組 十月15, 2002 B 陳東傑 B 蔣佳勳
第5章 异常处理 王德俊 上海交通大学继续教育学院.
第八章 C#高级编程.
第2章 建立Visual Basic應用程式.
淺談Visual C# 程式設計 國立台灣師大附中 李啟龍 Jason.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
.NET 簡介.
.NET 簡介.
第16章 VB.NET物件導向與.NET Framework
第1章 .NET与C# 为什么要设计一门新的编程语言? C#在微软的.Net平台中占据什么样的地位?
第一章: Java Web 开发技术概述.
Visual Studio IDE基本操作 建國科技大學 資管系 饒瑞佶.
C++ with Managed Extensions
基于 C# 的 .NET Framework 程序设计
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
Ch01網際網路、HTML 、 Script 、 ASP.NET簡介
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
程式設計 Visual Basic簡介 週次:1 建國技術學院 資管系 饒瑞佶 2003年9月17日.
例外處理與 物件序列化(Exception Handling and Serialization of Objects)
程序语言的现在和未来 孙志岗.
C/C++/Java 哪些值不是头等程序对象
Visual Basic.NET 程序设计语言课程内容
C#程序设计基础 第二章 数据类型.
序及第0章.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
Name1..hour //加班時數 name2..hour //請假時數
补充:c#语言基础.
開發Java程式語言的工具 JDK.
C#程序设计基础 $3 成员、变量和常量.
21世纪高职高专规划教材 C#语言程序设计 李继武 彭德林 主 编 张 珑 赵 松 周建辉 副主编
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
導 論 教學投影片.
本章要点: 了解ASP.NET 4.5的基础.NET Framework。
计算机应用基础 潍坊学院 计算机工程学院 主讲人:丁素英.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
医疗机构电子化注册系统培训 2017年3月.
C#快速導讀 流程控制.
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
编译原理 中南大学软件学院 陈志刚.
Presentation transcript:

蒋良卫(187365067@qq.com) 南华大学计算机学院 软件工程系 2016.03 QQ讨论群:526542338

课程安排(32课时) 总学时数:32 理论部分24学时 实验部分8学时

教材: 支持资源: C#程序设计教程(第3版) 李春葆等编著 清华大学出版社 2015 1. PPT课件 2.书中所有示例源程序   李春葆等编著   清华大学出版社 2015   支持资源:   1. PPT课件   2.书中所有示例源程序   3.书中所有编程练习题和上机实验题源程序

C#语言创始人简介 Anders Hejlsberg(安德斯,海斯博格 ) 早期 2008年

Anders的生平 1、基本简历   出生于哥本哈根,安德斯·海尔斯伯格曾在丹麦技术大学学习工程,但没有毕业,大学时期他曾替 Nascom microcomputer撰写程式,他曾为Nascom-2电脑撰写蓝标签(Blue Label) Pascal compiler,到了DOS时代他又重新改写这套compiler。   当时他在丹麦拥有个叫Poly Data的公司,他编写了Compass Pascal编译器核心,后来叫Poly Pascal。1986年他首次认识了Philippe Kahn。

2、Anders在Borland公司   安德斯·海尔斯伯格把Compass Pascal编译器核心授权给了美国Borland公司,并作为雇员加入Borland公司,并且是后来所有Turbo Pascal版本与Delphi前3个版本的架构师。   Philippe Kahn为第一个版本的Turbo Pascal添加了用户界面与编辑器。

3、加入微软公司   1996年Hejlsberg加入微软公司。据说,比尔·盖茨亲自参与了这次挖角行动,年薪三百万美金,并许诺安德斯·海尔斯伯格在微软将得到技术上的足够自由和资源支持。   据说该事件也是微软公司和Borland公司后续官司的导火索。

4、在微软公司   进入微软公司后,首先主持了Visual J++的开发工作,后来由于在Java开发工具授权问题上和Sun公司的纠纷,微软停止了Visual J++的后续开发。   这之后,作为.NET概念的发起人之一,安德斯·海尔斯伯格被任命为微软.NET的首席架构师,主持.NET的开发工作。

第1章 C#概述 1.1 什么是C#语言 1.2 .NET Framework概述 1.3 Visual Studio 2012的安装、启动和退出操作 1.4 Visual C#集成开发环境(IDE) 1.5 一个简单的C#程序

1.1 什么是C#语言 1.1.1 C#的发展历程 C/C++ C# Java 。。。

2000年2月,微软才正式将这种语言命名为C#(据说是因为C#开发小组的人员讨厌搜索引擎,因此把大部分搜索引擎无法识别的“#”字符作为该语言名字的一部分;还有一种说法是音乐中“#”是升调记号,表达了微软希望它在C的基础上更上一层楼的美好愿望)。2000年7月,微软发布了C#的第一个预览版。 2002年2月,微软发布了.NET Framework开发平台Visual Studio .NET 2002和C#语言的第一个正式版C#1.0。

2007年8月,微软发布了. NET Framework 3. 0和C#3. 0。2007年11月,微软推出了Visual Studio 2007年8月,微软发布了.NET Framework 3.0和C#3.0。2007年11月,微软推出了Visual Studio .NET 2008,同时发布了.NET Framework 3.5和C#3.5。 2010年4月,微软推出了Visual Studio .NET 2010,同时发布了.NET Framework 4.0和C#4.0。 2012年9月,微软推出了Visual Studio .NET 2012,同时发布了.NET Framework 4.5和C#5.0。 后续又推出了Visual Studio .NET 2013(没有更新C#5.0)和Visual Studio .NET 2014以及C#6.0等。

本书以C#5.0为背景介绍C#程序设计。在C#各版本的演化过程中,每个版本都新增了一些特性,如图1.1所示给出了各版本新增的主要特性。 新增主要特性 5.0 异步 4.0 命名参数和可选参数 3.0 LINQ 2.0 泛型 1.0 C#基本特性

1.1.2 C#语言特点 简洁的语法(抛弃了不明确的表示符和伪关键字-指针) 完全的面向对象程序设计(单继承,无全局变量和常量) 与Web紧密结合(简化了网络编程) 充分的安全性与错误处理(可消除许多软件开发错误) 灵活性(可定义非安全性方法,使用指针) 兼容性(遵守.Net Framework公共语言规范)

1.1.3 用C#编写的应用程序类型 控制台应用程序 Windows窗体应用程序 ASP.NET Web窗体应用程序 ……

1.2 .NET Framework 1.2.1 什么是.NET Framework 1. .NET Framework的功能和目标

简言之,.NET平台是一种面向网络,支持各种用户终端的开发环境,其功能如图1.1所示。

2. 托管代码和非托管代码 托管代码(managed code)是指为.NET Framework编写的代码,在.NET Framework的公共语言运行库(CLR)控制之下运行,类似于JAVA的虚拟机机制。托管代码应用程序可以获得CLR服务,例如自动垃圾回收、类型检查和安全支持等。 非托管代码(unmanaged code)是指不在CLR控制之下运行的代码,如Win32 C/C++ DLL。非托管代码由操作系统直接运行,因此必须提供自己的垃圾回收、类型检查、安全支持等服务。

3. .NET Framework的组成

3. .NET Framework类库(FCL) FCL(.NET Framework Class Library)是一个全面的类库。程序员可以十分方便地使用FCL中的类型及其成员,而不必编写大量代码来处理常见的低级编程操作。它是生成.NET Framework应用程序、组件和控件的基础。 FCL由命名空间组成。每个命名空间都包含可在程序中使用的类型,如类、结构、枚举、委托和接口等。

4. 公共语言运行库(CLR) CLR是.NET Framework的核心组件,它在操作系统的顶层,负责管理程序的执行。 CLR主要由公共语言规范(CLS)和通用类型习题(CTS)两部分组成。

(1)公共语言规范(Common Language Specification,简写为CLS)

(2)通用类型系统(Common Type System,简写为CTS) CTS定义了一套可以在中间语言中使用的预定义数据类型,所有面向.NET Framework的语言都可以生成最终基于这些类型的编译代码。也就是说,通用类型系统用于解决不同编程语言的数据类型不同的问题,从而实现跨语言功能。 例如,无论VB中的integer类型(VB中的整型)还是C#中的int类型(C#中的整型),编译后都映射为System.Int32。所以CTS实现了不同语言数据类型的最终统一。

5. 面向开发人员的.NET Framework和面向用户的.NET Framework (1)面向开发人员的 .NET Framework:首先要安装应用程序面向的.NET Framework的版本,如 .NET Framework 4.5.2。其次要选择并安装用于创建应用程序并支持所选程序语言的开发环境,如适用于.NET Framework应用程序的Microsoft集成开发环境是 Visual Studio。 (2)面向用户的.NET Framework:需要在计算机上安装应用程序特定版本的.NET Framework。

1.2.2 开发托管代码的过程 1. 选择编译器 为获得CLR提供的优点,必须使用一个或多个针对CLR的语言编译器,如C#、VB、或C++等编译器。这些针对CLR的语言称为.NET Framework兼容语言,相应的编译器称为.NET Framework兼容编译器。

2. 将代码编译为中间语言 使用.NET Framework语言编译器把源代码编译成与机器无关的中间语言MSIL(Microsoft Intermediate Language),它不是本机代码。如图1.4所示,这个编译步骤产生程序集,程序集是在CLR中可执行的文件,存储在磁盘上,通常具有的扩展名为.exe或.dll。

程序集(assembly)是.NET Framework应用程序的构造块,是为协同工作而生成的类型和资源的集合,这些类型和资源构成了一个逻辑功能单元。 程序集向CLR提供了解类型实现所需要的信息。

3. 将MSIL编译为本机代码 运行Microsoft中间语言(MSIL)之前,必须先根据CLR将其编译为适合目标计算机体系结构的本机代码。 .NET Framework 提供了使用JIT(即时编译)和NGen.exe(预编译)两种方式来执行此类转换。

.Net程序在运行时会实时(JIT)编译,将.Net程序文件编译成cpu认识的汇编机器码。实时编译需要消耗额外的cpu和内存资源 如果你在做的是一个较大的winform程序或silverlight等客户端程序时就需要考虑提前编译 C:\Windows\Microsoft.NET\Framework\v4.0.30319)有一个ngen.exe工具

(1)使用.NET Framework 实时(JIT)编译器进行编译 在应用程序运行时,JIT编译可以在加载和执行程序集内容的过程中根据需要将MSIL 转换为本机代码,如图1.5所示。

(2)使用 NGen.exe(本机映像生成器)的安装时代码生成 由于JIT编译器会在调用程序集中定义的单个方法时将该程序集的MSIL转换为本机代码,因而必定会对运行时的性能产生不利影响。可以使用Ngen.exe将MSIL程序集转换为本机代码,其作用与JIT编译器极为相似。

4. 运行应用程序代码 运行应用程序代码的过程如图1.6所示。非托管代码直接由操作系统执行。

1.2.3 C#语言与.NET Framework 开发人员以C#项目作为基本开发单位,其过程以前面介绍的开发托管代码的过程类似。如图1.7所示说明了C#项目、.NET Framework类库、程序集和CLR的编译时与运行时的关系。

1.3 Visual Studio 2012的安装、启动和退出操作 首先安装.NET Framework 4.5。 然后安装Visual Studio 2012。

最新版:Visual Studio 2015 免费下载: https://www.visualstudio.com/downloads/download-visual-studio-vs

1.3.2 配置Visual C#开发环境

1.3.3 Visual Studio 2013的启动 在安装好Visual Studio 2013后,启动“开始”菜单,选择“所有程序”|Microsoft Visual Studio 2013|Microsoft Visual Studio 2013 命令,即可启动Visual Studio 2013系统。

1.3.4 Visual Studio 2013的退出 在Visual Studio 2013集成开发环境中单击“关闭”按钮或者选择“文件”|“退出”菜单命令时,Visual Studio 2013会自动判断用户是否修改了项目的内容,并询问用户是否保存文件或直接退出。

1.4 Visual C#集成开发环境(IDE) 1.4.1 启动Visual C#集成开发环境 启动Visual Studio 2013后,选择“文件”|“新建”|“项目”菜单命令,打开“新建项目”对话框,如图1.10所示。

选中左边列表框中的“Visual C#”选项,表示新建的是Visual C#项目。中间窗口列出Visual Studio已安装的Visual C#模板。

当选中一个模板后(例如选中“控制台应用程序”),在下方的“名称”文本框中输入项目名称(例如example),单击“浏览”按钮选择一个存放项目的位置(如D:\C#程序\ch1\),再单击“确定”按钮,即可进入Visual C#集成开发环境,如图1.11所示。

标题栏 属性 窗口 代码编 辑窗口 工具栏 错误列 表窗口 菜单栏 解决方案 资源管理 器

1.4.2 Visual C#菜单栏 (1)“文件”菜单 (2)“编辑”菜单 (3)“视图”菜单 (4)“团队”菜单 (5)“工具”菜单 …

1.4.3 Visual C#工具栏 1. 常用的工具栏 (1)“标准”工具栏

(2)“调试”工具栏

(3)文本编辑器工具栏

2. 工具栏的显示与隐藏 如果需要显示或隐藏某些工具栏,只要选择“视图|工具栏”命令,然后选中菜单项中相应的工具栏的名称就可以了(也可以在工具栏上击鼠标右键,在弹出的快捷菜单中选择相应的的工具栏名称)。

1.4.4 解决方案资源管理器 在Visual Studio 2013中,项目是一个独立的编程单位,其中包含有程序文件和其他若干相关文件,若干个项目就组成了一个解决方案。 如图1.11所示的解决方案资源管理器指出解决方案名称为example,它以树状的结构显示整个解决方案中包括哪些项目,以及每个项目的组成信息。包含在项目内的组件成员会依据建立它们所使用的开发语言不同而有所不同,这些成员包括引用、数据连接、数据夹和文件等。

1.4.5 编辑器设置 设置方法是选择“工具|选项”菜单命令,显示如图1.15所示的“选项”对话框。

1.5 一个简单的C#程序 本小节通过一个简单的示例介绍C#控制台应用程序的创建过程。 【例1.1】创建一个控制台应用程序,求用户输入的两个整数的和。

解:其设计过程如下: ① 启动Visual Studio 2013。 ② 创建项目。在“文件”菜单上,单击“新建项目”,此时将打开“新建项目”对话框,选择“控制台应用程序”,输入项目名称proj1-1,指定位置为“D:\C#程序\ch1”,然后单击“确定”按钮。 ③ 将光标移到代码编辑窗口中Main函数内,输入程序代码,如图1.18所示。

④ 单击标准工具栏中的 按钮保存项目。按Ctrl+F5键执行程序,输入10和20,输出结果如图1.19所示。

1.5.1 代码分析 引用部分 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; 引用部分

namespace proj1_1 { class Program static void Main(string[] args) int a, b, c; //定义变量 Console.Write("a:");//输出屏幕提示信息 a = int.Parse(Console.ReadLine());//从键盘获取字符串并转换成整数 Console.Write("b:"); b = int.Parse(Console.ReadLine()); c = a + b; //加法运算 Console.WriteLine(“a+b={0}”, c);//输出结果 }

说明:如果按F5和单击工具栏的 按钮运行程序,会发现程序执行完后没有停顿,可在Main方法最后加上Console 说明:如果按F5和单击工具栏的 按钮运行程序,会发现程序执行完后没有停顿,可在Main方法最后加上Console.ReadKey()语句。而按Ctrl+F5键程序执行完后会自动停顿。

1.5.2 项目构成 在解决方案资源管理器中指出了proj1-1项目的构成。

1. Properties部分 其中只有一个名称为AssemblyInfo.cs的C#文件(所有C#程序文件的默认扩展名为.cs),它的位置是“D:\C#程序\ch1\proj1-1\proj1-1\Properties\AssemblyInfo.cs”,用于保存程序集的信息,其中包含程序集版本号、说明和版权信息等。

2. 引用部分 指出程序的引用的命名空间,用户可以在此添加或移除命名空间。

3. Program.cs部分 它是C#应用程序文件,包含前面介绍的C#源代码。用户可以双击它进入代码编辑窗口进行代码的编辑和修改。

1.5.3 控制台应用程序中的基本元素 1. 注释 2. Mian方法 它为入口主函数,其特点如下: 1.5.3 控制台应用程序中的基本元素 1. 注释 2. Mian方法 它为入口主函数,其特点如下: Main方法是.exe程序的入口点,程序控制在该方法中开始和结束。 Main方法方法在类或结构的内部声明。它必须为静态方法,而不应为公共方法(在前面的例子中,它接受默认访问级别 private)。 Main方法具有void或int返回类型。 所声明的 Main 方法可以具有包含命令行实参的 string[] 形参,也可以不具有这样的形参。形参读取为零索引的命令行参数。

3. 输入方法Console.ReadLine 4. 输出方法Console.WriteLine

Console.WriteLine方法类似于C语言的printf函数,可以采用“{N[,M][:格式化字符串]}”的形式来格式化输出字符串,其中的参数含义如下。 花括号({}):用来在输出字符串中插入变量的值。 N:表示输出变量的序号,从0开始。 [,M][:格式化字符串]:可选项,其中M表示输出的变量所占的字符个数。 [:格式化字符串]:可选项,因为在向控制台输出时,常常需要指定输出字符串的格式。

格式字符 含义 示例 输出结果 c或c 将数据转换成货币格式 Console.WriteLine("{0,5:c}", 123.456); ¥123.46 D或d 整数数据类型格式 Console.WriteLine("{0:D4}", 123); 0123 E或e 科学计数法格式 Console.WriteLine("{0:E4}", 123.456); 1.2346E+002 F或f 浮点数据类型格式 Console.WriteLine("{0:f4}", 123.456); 123.4560 G或g 通用格式 Console.WriteLine("{0:g}", 123.456); 123.456 N或n 自然数据格式 Console.WriteLine("{0:n}", 123.456); 123.46 X或x 十六进制数据格式 Console.WriteLine("{0:x}", 12345); 3039

5. 数据转换 由于ReadLine方法只能输入字符串,为了输入数值,需要进行数据类型的转换。C#中每个数据类型都是一个结构,它们都提供了Parse方法,以用于将数字的字符串表示形式转换为等效数值。例如:   int d = int.Parse(“12”); 类 方法