课程概述 C简介课件

上传人:我*** 文档编号:144931393 上传时间:2020-09-14 格式:PPT 页数:27 大小:302.50KB
返回 下载 相关 举报
课程概述 C简介课件_第1页
第1页 / 共27页
课程概述 C简介课件_第2页
第2页 / 共27页
课程概述 C简介课件_第3页
第3页 / 共27页
课程概述 C简介课件_第4页
第4页 / 共27页
课程概述 C简介课件_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《课程概述 C简介课件》由会员分享,可在线阅读,更多相关《课程概述 C简介课件(27页珍藏版)》请在金锄头文库上搜索。

1、.NET程序设计.NET Programming,邓岳 西安电子科技大学 软件学院 ,课程概述,学院任选课,考查课 学时24+16 上机:第710周的周一晚 2学分 课程教材 CLR via C# 第4版 通过率 11级62%,10级88%,09级71%,课程内容, .NET框架的相关概念、基本原理、核心类型 WinForm、WebForm等具体的应用程序模型,成绩构成,课程相关资料可关注微信公众号后回复“课程04”,二选一,选择1:实验报告+小论文,15人/组 实验报告(每组1份,按模板完成,copy无分),命名为“实验报告-学号1-学号2-学号3”(按学号从小到大排列) 小论文(每组1份,

2、copy无分) 按模板完成,长度不少于(人数+1)页(1人2页,3人4页) 命名为“题目编号-学号1-学号2-学号3”(按学号从小到大排列) 选择2:课堂演示,13人/组 3035分钟,PPT课堂报告+技术演示(可选) 由现场随机选择的同学和教师共同评分 不支持跨班或跨年级分组,补充说明 材料提交,材料均提交电子版,不需纸质版 每组提交1份实验报告+1份小论文(做PPT的小组仅提交PPT),交给课代表 课代表 1班:刘思雨 2班:武堰 3班:秦若珊 4班/卓越班:翟翼卓(负责全年级PPT报名),C#简介,C#的历史(一) 背景,1998年底,微软将Java中虚拟机的概念引入到新一代COM的设计

3、。同时提出了“元数据”的概念,用于描述组件的类型信息和工具支持信息。 “COM虚拟机” 最终被定名为CLR(Common Language Runtime,公共语言运行时)。 微软提出了在该“虚拟机” 上运作的语言应该遵循的一些规则,以及该虚拟机的类型系统和指令集。 所有这些规范形成了最终的CLI(Common Language Infrastructure,公共语言基础设施),并提交给ECMA委员会。 微软开发了CLI的一个实现,即.NET框架。,C#的历史(二) 出生,1998年12月,微软启动了一个全新的语言项目COOL,一款专门为CLR设计的纯面向对象的语言,即C#的前身。 1999年

4、7月,微软完成了COOL的一个内部版本。 2000年2月,微软正式将COOL更名为C# 传言1:C#开发小组讨厌搜索引擎 传言2: “#”表示音乐升调 2002年1月,微软推出“Visual Studio .NET 2002”,同时发布了C#的第一个正式版本C# 1.0,C#的历史(三) 发展,2003年,微软推出了VS.NET 2003,同时发布了C# 1.1 2004年,发布VS 2005的第一个Beta版,同时展示了C#语言的2.0版本。 2.0新特性有泛型编程能力和匿名方法等。 VS 2005本来被叫做VS.NET 2004 2005年,C# 3.0的技术预览版发布。正式版于2007年

5、底跟随研发代号Orcas的VS 2008发布 3.0核心新特性有LINQ(语言集成查询,Language Integrated Query)、Lambda表达式、对象和集合初始值设定项等。 2008年底发布C#4.0技术预览版。正式版于2010年跟随VS2010发布,加入了对动态语言的支持等特性 2012年,C#5.0,随VS2012发布,C#的历史(三) 发展,C#1.1VS.NET 2003,动态语言支持,C#的特性,面向对象语言,其目标是结合C+的执行效率和VB的易用性。 基于C+,同时包含类似Java的很多特征 .NET平台开发的主力语言 .NET平台支持很多语言:C+/CLI、VB.

6、NET、J#、Python、Ruby、Boo、F#、Lua 2001年年底, ECMA将C#批准为一项标准,C#语法Hello World,/HelloWorld.cs 输出两行”Hello World!” using System; /using类似于Java的import和C+的#include class HelloWorld public static void Main() /类似于Java的 System.out.println(Hello World!); Console.WriteLine(“Hello World!”); /0、1类似于C/C+中printf()中的“%s”占

7、位符 Console.WriteLine(“0 1”, Hello“, World!”); ,C#语法(二) delegate/event,事件(event)是Windows平台中的一个重要概念。Windows应用程序中几乎都会涉及大量的异步调用,比如响应点击按钮、处理Windows系统消息等。 回忆一下VC/Java下GUI程序的拖放控件式开发方式 事件是由某个对象发出的消息,这个消息标志着某个特定的行为发生了,或者某个特定的条件成立了。比如用户点击了鼠标、socket上有数据到达等。 触发事件的对象称为事件的发送者(sender),捕获并响应事件的对象称为事件的接收者(receiver)。

8、 在C#中,事件的实现依赖于delegate(委托) delegate是函数的封装,它代表“一类”函数。它们都符合一定的命名(拥有相同的参数列表和返回值类型)。 delegate的实例将代表一个具体的函数。,C#语法(二) delegate/event,delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类。delegate类能够拥有一个命名(signature),并且它只能持有与它的命名相匹配的方法的引用,与C/C+中的函数指针十分相似。 delegate有许多函数指针不具备的优点。delegate是面向对象、类型安全、可靠的受控(managed)对象。runtime

9、能够保证delegate指向一个有效的方法,无须担心delegate会指向无效地址或者越界地址。 通过以下3个步骤即可实现一个delegate: 声明一个delegate对象,它应当与你想要传递的方法具有相同的参数和返回值类型。 创建delegate对象,并将你想要传递的函数作为参数传入。 在要实现异步调用的地方,通过上一步创建的对象来调用方法。,C#语法(二) delegate/event,public class MyDelegateTest /步骤1,声明delegate对象 public delegate void MyDelegate(string name); / 下面是欲传递的方

10、法,它与MyDelegate具有相同的参数和返回值类型 / 看上去和普通方法没有区别 public static void MyDelegateFunc(string name) Console.WriteLine(Hello, 0, name); public static void Main() / 步骤2,创建delegate对象 MyDelegate m = new MyDelegate(MyDelegateTest.MyDelegateFunc); / 步骤3,调用delegate,m实际上执行了MyDelegateFunc的功能 m (Sam); /输出“Hello, Sam” ,

11、C#语法(二) delegate/event,C#中的事件是依靠具有特殊命名的delegate来处理的: public delegate void MyEventHandler( object sender, MyEventArgs e ); 其中的两个参数:sender代表事件发送者(事件触发者);e是事件参数类,包含相关信息。 比如MouseDown事件的参数e有e.X, e.Y表示点击的坐标。 MyEventArgs类用来包含与事件相关的数据,所有的事件参数类都必须从System.EventArgs类派生。 如果事件不含特殊的参数,那么可以直接用System.EventArgs类作为参数

12、类型。参数e会随着事件的不同而提供不同的具体数据。,C#语法(二) delegate/event,结合delegate的实现,我们可以将自定义事件的实现归结为以下几步: 1定义delegate对象类型,它有两个参数(哪两个?),此时返回值必须是void。 2定义事件参数类,必须从System.EventArgs类派生。如果事件不带特殊参数,这一步可以省略。 3定义事件处理方法,必须与delegate对象具有相同的参数和返回值类型。 4用event关键字定义事件对象,它同时也是一个delegate对象。 5用+=操作符添加事件到事件队列中 6需要触发事件的时以调用delegate的方式写事件触发

13、方法。一般应为protected访问限制,名字是On事件名。 7在适当的地方调用事件触发方法触发事件,C#语法(二) delegate/event,public class EventTest / 步骤1,定义delegate对象 public delegate void MyEventHandler(object sender,System.EventArgs e); / 步骤3,定义事件处理方法,它与delegate对象具有相同的参数和返回值类型 public void MyEventFunc(object sender, System.EventArgs e) Console.Write

14、Line(“成功调用!); private event MyEventHandler myevent; / 步骤4,用event关键字定义事件对象 public EventTest() / 构造函数 / 步骤5,用+=操作符将事件添加到队列中 this.myevent += new MyEventHandler(MyEventFunc); protected void OnMyEvent(System.EventArgs e) myevent(this, e); / 步骤6,以调用delegate的方式写事件触发函数 public void RaiseEvent() EventArgs e =

15、 new EventArgs(); OnMyEvent(e); / 步骤7,触发事件 public static void Main() EventTest et = new EventTest(); et.RaiseEvent(); /调用链:RaiseEvent-OnMyEvent-myevent-MyEventFunc ,C#语法(二) delegate/event,public class 订票工作 / 步骤1,定义delegate对象 public delegate void 订火车票(object sender,System.EventArgs e); / 步骤3,定义事件处理方法

16、,它与delegate对象具有相同的参数和返回值类型 public void 生活委员订票 (object sender, System.EventArgs e) Console.WriteLine(“生活委员给大家订票); private event 订火车票 班级订票; / 步骤4,用event关键字定义事件对象 public 订票工作() / 构造函数 / 步骤5,用+=操作符将事件添加到队列中 this.班级订票 += new 订火车票(生活委员订票); protected void On订火车票 (System.EventArgs e) 班级订票(this, e); / 步骤6,以调用delegate的方式写事件触发函数 public void 开展订票工作() EventArgs e = new EventArgs(); On订火车票(e); / 步骤7,触发事件 public static void Main()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号