c#笔记.doc_第1页
c#笔记.doc_第2页
c#笔记.doc_第3页
c#笔记.doc_第4页
c#笔记.doc_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

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

文档简介

1 day12. 0526程序工具 4数据库语言和系统:SQL语言SQL SEVEROracle程序开发平台和语言:C 语言,VB,C+ASP,HTML/javaScript(标志符语言)预备课程计算机基础程序设计基础:课程安排.NET入门 C#理论.net发展:微软在2000年6月发布.net战略 2002年底一个版本visual 2002 发行版本VS.net2002 VS.net2005 V20082007 V20102009测试版.net简介:.NET程序执行.net产生的原因:1.互联网的发展 2.用户需要个人空间 3.企业需要资源利用最优化 企业利润最大化 想整合新旧系统异构(是硬件不兼容)是阻碍互联网发展的因素 4.程序员需要高效强大的工作。NET怎样创建WEB服务?1. 创建WEB服务项目 2. 加一个Web服务到项目中取名 编写一个Funvtion 通过ebMethod把Funtion变为Web服务器3. 编译 连接 .net是一种思想.net是一种思想一种理念 让任何人在任何时候任何地方做.net是微软一起系统的总称 .net企业服务 具有.net 开发C# VB.NET C+ .NET公共语言规范CLS(common Language Specification): ASP.NET Windiows窗体 ADO.NET XML.net框架类库CLR 公共语言运行库(Common Languages )WINFOWS COM+服务.NET执行:两次编译第一次编译 :源代码编译产生的是中间语言(慢)第二次编译:中间语言(immediate language 是一种介于高级语言和基于汇编语言的伪汇编语言,由一种特定指令组成 独立CPU的指令集,平台无关,跨平台,实现语言互操作性跨语言)转换成可编译语言(快).NET特点:1. 统一的编程接口传统的编程模式不同的语言VB,VC,Delphin采用不用的编程模式和编程接口Web编程和windows编程采用不同的编程模式2. .net编程模式3. .NET的核心技术基础:以.XML和Internet协议为基础基于开放的标准4. 高效而功能强大的集成开发环境(IDE:integrated Developing Environment)Visual studio.NET典型C#构成:l C#和.net的关系:C#是专门为.NET设计的面向Internet和企业应用的新一代编程语言 ,l 程序:一系列有序指令的集合l C#程序的本质:C#的程序是类的集合l C#程序的构成单元编译:注解说明 单行编译 / 说明多行编译 /* */ 不能嵌套/hello C# 程序注释/System.Console.Writelne(“hello,word”) 方法:将指定的数据输出Namespace 定义命名空间 Using System; / System命名空间namespace MyNamespceclass class1 static void Main() /必须有Main方法 且必须放在类中且静态(static)的 返回类型void或int有返回值return(); Main(string) 参数可有可无 /System.Console.Writelne(“hello,word”) Console.Writelne(“hello,word”) ;Console.ReadLine();/停止/输出hello,word课后回顾 问题:1. .NET是编程语言吗?不是语言是平台2. .NET平台支持那种语言?举例 VB.NET C# C+.NET Delphin J#.NET3. 所有的.NET应用程序都经过几次编译?第一次编译结果是什么?2次 中间语言4. 基于.NET平台的软件是如何执行的经过2次编译 5. IL指的是什么? immediate language 在任何时间任何地点访问任何6. .NET平台理念是什么?7. .NET平台的核心技术基础 核心组件是什么?8. 描述一下.NET Framework 体系结构?9. CLS的含义?公共语言规范10. .NET 的特点?作业 图片从左向右运动 ftp 用户名:MSD0905 密码:tarena_09050526/格式规范/1块/块内部有其他块 内部块要回退一个Tab(4个空格)键/支持半角符号程序工具1. 文本编辑器(效率低 但也要回用)1记事本输入代码2改扩展名 .cs 3DOS下执行 如:csc.exe hello.cscsc 在msdn上查帮助2. VS.NET 1) VS.net 特点介绍:是高效而强大的集成开发环境 是一整套的开放工具 很多模版 2) 生成的项目类型:控制台应用程序 windows应用程序 Asp.NET web应用程序 智能设备应用程序(移动应用程序)3) 编程特性4) 环境:让代码显示行号(工具-选项-文本编辑器) 代码中的字体(工具-选项-环境) 常用窗口(在试图里找): 1资源管理器 窗口-重置布局 5) 控制台应用程序项目模板 等价 文本+编译器 常用模版 :windows应用程序 控制台应用程序 ASP.NET网站 添加项目模板(选中项目点右键) 重要:类(用于语法学习)主要是实现功能 逻辑功能。 常用:windows窗体:主要输入输出。web窗体:UI输入输出 文本文件可以转换任意文件6) 解决方案和项目: 解决方案中会包含多个项目(工具-选项-解决方案) 解决方案多启动C#应用程序是类的集合(另一个角度 文件的集合:可以包含多个文件) 1.类和文件的关系:1)一个文件里可以包含多个类 ,一个类可以拆分到不同文件中。作为一种编程规范:最好 一个文件中放一个类。 没什么关系!2)文件名和类名:可以相同也可以不同, 写代码用的是类名 编码规范:最好 文件名和类名保持一致;控制台应用程序 模板 多种类型文件作用 1. *.lsn 解决方案文件:管理项目 a包含几个项目 b打开所有项目2. *.suo 解决方案用户设置文件3. *.csproj 管理文件 a.包含了多少文件 b.打开当前文件 注意不能直接点击一个.cs文件,没办法调试框架文件 犹如建筑物4. *.csproj.user 项目用户设置文件5. 所有以.cs结尾的文件dou不能删除 主要是代码6. 文件的层次不能修改 properties 见后7. bin 文件:输出文件夹,程序编译后的结果 a. ConsoleApplication1.exe文件是最终编译结果b. ConsoleApplication1.pdb 程序调试数据库文件,供编译器使用c. ConsoleApplication1.vshost.exe 提高调试性能obj 文件:目标文件,中间的结果运用帮助1. 索引 本地资源2. 搜索 本地 互联网3. 目录 没事 系统罗列4. 快捷帮助 F1 ok 会简单的调试和单步执行1. F5 运行 回车 退出2. 单步执行 F11 黄色消失说明执行焦点转移 等待输入VS.NET创建控制台的步骤1. 新建项目 合适的语言 合适的标志符:程序中用来区别某个元素的名字 1. 预定义保留标志符(关键字)2. 自定义的标志符(表字符)3. 类库中的命名空间 pascal 命名C#中标志符的规则:l 不能包含任何特殊字符 但可以是_ l .可以包含数字 但不可以数字开头l 区分大小写 不可以重复l C# 中系统标志符不可以再用l C# 保留字(系统)不能在程序中做标志符 前缀 关键字:是对编译器具有特殊意义的预定义保留标志符作业: 关键字:中的语句 预习 msdn 运算符:整除 取余附加题:运算 z=x+y*(x*y) 0527(day3)运算符:执行计算,为变量赋值 进行相等或不相等的测试 以及执行其他运算表达式:罗列而成的式子赋值运算符:语法: 变量=表达式;x=90;p41;算数运算符:1.连接(字符串)2.加法 ;p401. 操作数一致 2. 类型一样 类型兼容 系统会自动把一种类型转换车功能另一种类型逻辑运算符:与(&) 或(|) 非(!)数据库结构.成员 优先级别循环 int re=Math.Pow(2,8);内置数据类型 (1.内置结构类型 2.枚举)基本内置结构类型 :整型 浮点 char 选择: 合适 够用 不浪费Unicode字符:是用于字符和文本的通用字符编码方案 包括基本ASCII字符集,各种其他字母。重音符,货币符号,小数,音调符号以及数学支持和技术符号。Unicode的前128个码位(0127)对应于标准美国键盘上的字母和符号ASCII字符代表字符串:是Unicode字符发有序集合 格式:string s=“ ”; String s1=”abcde”; Char x=s10; 从第一个开String :1. 空 string s =” ”;2. 数字字符串 由 09字符组成的 string s=”123”;3. 日期格式字符串4. 混合字符串 12a5. string 默认为null 6. string x=null;内存中不存在 不被引用string s=” ”; 内存中以开辟了s为空的空间数据类型的分类:1. CTS的含义:(common type system 公共类型系统)2. CTS是.NET平台利用了不同语言的共性抽象出来的3. CTS主要包含标准.NET数据类型和准则集l CTS中的每一个类型都是继承自一个基类system.object()值 栈 执行效率高 空间利用率低 特点算法 系统管理 先进后出(轻量级)引用 堆 数据需寻址 效率低 空间利用率高(重量级)0530(day4)加法程序 :1. /总体提示 Console.writeLine(“进行加法运算”);2. /获得输入一个或多个String a=Console.ReadLine();String b=Console.ReadLine();3. /处理/初步处理int x=32(a);int x=32(a);/核心处理String re=x+y;4. /输出Console.WriteLine(re);数据类型转换:l 隐式(自动)类型转换 (Implicit Data Tupe Conversion) 例如: int x=5; double y=x;l 显示(强制)类型转换(Explicit Data Type Conversion) 语法: 类型名 变量或数值 例如 int x=5;double b=(double)x;类型转换:1. 值值(值到值的转换):表示范围小的类型值转换为表示范围大的类型的值Short int long float double 把范围大的转换为范围小的类型的值l 大转小要显示l 不一定会成功2. 值引用:1)值转换为引用: 装箱(Boxing) l 可以用2种方式 可以隐也可以显示方式l 一定成功2)引用转换为值 :拆箱(UnBoxing)只可以显示拆箱3. 引用引用类型转换方法:源(8)转换为目标(”8”)n Convert 类 : 语法:Convert.To目标(源) string re=Convert.ToString(8);命名空间:System 程序集:mcorlibn ():结果 (目标)源 string re=(string)8;n Parse: 发放 源是字符串 re=目标.parse (源)int re=int.parse(“8”);源目标1. Convert 类 : 常用的基本数据类型 引用类型之间的转换值,引用:string object日期datetimel 字符串:数值字符串 值l 值字符串: string re=a.tostring(); 或 string re=convert.tostring(a);l 字符串:日期格式字符串日期 日期:DateTime d=new DateTime(2008,8,9,12,25,30); 显示:”2008-8-9,12:25:30” DateTime d=DateTime.now; datetime re=d.tostring(); 日期格式的转换: string s1 = 2008-8-8; string s2 = 2008/8/8; string s3 = 2008-08-08; string s4 = 2008/08/08; DateTime d1 = Convert.ToDateTime(s1); DateTime d2 = Convert.ToDateTime(s2); DateTime d3= Convert.ToDateTime(s3); DateTime d4 = Convert.ToDateTime(s4); 2. ():装箱和拆箱 引用类型之间的转换3. Parse: 数字字符串基本类型1. Console.WriteLine(re); /输出换行2. Console.Write(re);/输出不换行3. Console.ReadLine(); 例如 String a=Console.ReadLine();4. Console.Read(); 例如 int a=Console.Read ();1)只读取 一个字符 2)把字符转换成相应的ASCII值。格式化输出Console.WriteLine(“格式化字符串”,参数);占位符(标识符):”数字”,参数列表06011. 分析问题 一个任务 分成多个小任务 类似性 确定此问题需要循环2. 选择循环语句记住语法3. 套语法l 确定循环条件 循环表达式a 固定次数 b 设定l 确定循环体 循环语句的语句块 While 循环:1. 循环语句 初始化修改循环条件 否则死循环 模板: int i = 0; while(i5) i+; do while 循环:l do while 先执行后判断 所以条件为假 至少执行一次 int i = 0; do i+; while (i 5);l while循环 先判断后执行 所以条件为假不执行int i = 0; while (i 0 /目标:放值初始化成非默认值 /注意:1names.Length / 2数组的名字【X】:表示的下标为x的元素 / names0 :x=0;x放值 /for (int i = 0; i 30; i+) for (int i = 0; i names.Length; i+)/ok! namesi = 张三 + i.ToString(); /2)不可以用循环:一个一个赋值 /names0 = 张三; /names2 = 李四; /. /names29 = 标; /names30 = 爱爱 ;/no! Console.ReadLine();DAY7 0603方法 变量1方法 是在类或结构中声明的 包含流程控制语句的代码块在C# 中每个执行指令都是在方法的上下文中执行的2 大部分方法可以处理传入的数据并返回处理的结果3 方法尽可能小,以便完成4 方法减少代码的重复5 方法的语法:修饰符 返回类型 ( 参数的数据类型参数名称 , )1. 方法的声明,定义 a.位置 类,结构中 ,不能嵌套b.一般语句放在方法中 尤其:方法的调用必须放在方法中 一般用 A方法调用B方法c.传入值 -方法体 传出值 调用端 2. 方法的调用语法:方法名(参数列表);条件必须位于一个类中1) 返回类型 2大类 a.没有返回值 返回类型 void可以没有return 如果函数返回类型是void 调用端酒不能用=接收 return ; 不能在return 后面加任何表达式常量,变量等表示 立即返回到调用端特点:利用 跳出函数 条件语句中运用 b. 有返回值返回类型 除了void之外的 c#数据类型必须有return语法: return 表达式 ; 这个表达式类型必须和返回类型兼容一样,调用方法:a。不用= b。用=注意:每个可能的路径都有 return 表达式3. 参数:1) 两大类a. 形式参数(形参):声明定义方法时,()中声明的参数是 形参l 语法:数据类型 名称1,数据类型 ,名称2,l 注意:必须有数据类型 相当于变量 类似变量的声明 不能初始化l 作用:变量的作用b. 实际参数(实参):调用方法时,()中声明的参数是注意:调用方法的时候 要对用一致 定义时没有参数 调用也不能用如果定义时有 调用时对应一致对应一致:定义时有几个,调用时就几个但是 实参不能有数据类型说明符 且类型匹配个数一样 类型一致实参:常量 变量方法的写法: 2) 语法 3) 分层 模块化 第一步:用原始方法作出来 一个方法 Main 第二步:Main代码两类 一类 UI userinterface:出入输出第三步: 编写方法:把核心处理 写成方法注意:确定返回值和参数不要出现ui元素 输入输出语句变量:局部变量:声明在方法中的变量 一般标识符 已经声明了就不能再声明了成员变量:直接声明在类中的变量全局变量:c#中没有 区别:1)局部变量必须程序员初始化才能用 成员变量程序员不初始化就可以用 2)变量的作用域 作用范围 不同局部变量:当前语句块初始化开始 到 结束范围内成员变量:当前类块 重名问题: l 同一函数中局部变量和局部变量不能同名l 同一类中成员变量和成员变量不能同名l 成员变量和局部变量重名的时候 遵循就近原则 如要使用成员变量 类名.成员变量 或 this.成员变量(没有static)参数的传递:值传递: 调用端不受被调用函数的影响引用传递 :调用端受被调用函数的影响 ref c#中的引用传递 让函数返回值引用传递实现方法:参数传递:1. 值以值得方式传递 参数默认类型,默认2. 值以引用的方式传递 参数是值类型,ref,out3. 引用以值的方式传递 参数是引用类型,默认4. 引用以引用的方式传递 不用Void f(ref string s) 例外重点:值以引用的方式传递 ref,outRef返回值 输入输出 当需要一个函数返回多个类型值的时候可以考虑用引用传递 即 ref 参 在调用端初始化(面试题)out 参数:传出 先使用后初始化 一定在方法中初始化params:定义参数时使用 参数是可变的注意:在方法中声明的params关键字之后不允许任何其他参数,并且不允许只有一个params 参数是形参表最后一个 且只能由一个 只可以是一维数组80604 day8方法重载17方法重载:定义在1. 同一个类中 2. 名字相同 3. 参数不同 l 参数类型不同l 参数个数不同l 参数类型和个数都不相同4. 多个方法注意:与参数名称无关 与函数返回值无关何时用方法重载:一个类有多个功能 其中有2个以上功能类似就可以对相似的功能用重载方法重载优缺点:优点:代码重用 提高开发效率 方便(使用者)调用缺点:用的不合适 将使代码难以维护度 合时微软类库重载标志:如:Console.WriteLine();技巧:方法后先输入( 暂停XML文档注释(只能放在类的上边,类中成员的上边 )/自动感应声成 注释 和生成文档的作用 单行 多行C# 中的类 是一种数据类型,用来定义对象的类型的类是对象的模板,对象是类的实例对象基于类的实例C#的对象 是用于在程序中模拟现实生活的事物对象是具体的实体C# 中的类是使用class 关键字创建的语法:访问修饰符 class类的主体 成员变量;类的成员 (成员)方法;成员变量语法:访问修饰符 数据类型 成员变量;方法的语法:访问修饰符返回值)()创建类对象的方法;类名称 对象名称=new 类名称();调用类成员的语法: 对象名 变量名;类的成员是非静态的,跨类调用静态: static 对象方法 方法非静态:没有static 类方法调用类的静态方法:类名.静态变量;目的 取值 赋值类名.静态方法名()静态方法是专门为了访问静态变量的 不能访问非静态方法发调用 同一个项目跨类调用看被调用的函数是不是publicinternal不是不调用看被调用的函数有没有static 如果有调用的语法:类名.成员没有调用的语法:对象名.成员名;0605 day9构造函数和析构函数 结构和继承构造函数 1. c#中的构造函数是类中的特殊类型的方法;与类同名;不返回值 语法:访问修饰符 public 类名() 构造主体 class 车 int ID; string name; public 车(int ID,string name) this.ID = ID; = name; n 可以重载n 用途:初始化n 初始化类的成员变量的 使之初始化为非默认值n 非静态构造函数 初始化非静态变量的,使之初 始化为非默认值n 静态构造函数 初始化静态成员变量,使之初始化为非默认值2. 成员变量1)系统完成 初始化 ,没有编写构造函数 2)程序员 编写构造函数 初始化成默认值或非默认值3. 类中多个构造函数的关系:1)非静态构造函数:a. 默认构造函数(无参构造函数)b. 有参(非默认)构造函数由谁调用:系统隐式的何时:new 创建对象时调用2)静态构造函数:以static开头l 没有访问修饰符l 不能有任何参数l 可以和类 非静态构造函数共存l 不允许出现访问修饰符l 不能重载l 只被执行一次l 只有一个l 初始化类的静态成员的由谁调用:系统隐式的何时:类的第一个实例创建前执行5. 类中构造函数:如果编写了一个有参的构造函数 应该再加一个没有参数的构造函数。4. 调用多个:语法:在构造函数的():this(实际参数)C#析构函数:是类中特殊类型的方法 不能有修饰符 可以有 但不用创建和使用自定义结构类型:结构类型(struct,随同ructure的缩写)l 以struct定义的值类型l 可以有方法l 可以拥有带参数的构造函数l 结构属于值类型 不能实现继承定义:struct student public int id; public string name; public void show_details() 显示学生信息 5. 结构:1. 这个样子 属性,索引器:是c#语法中一种结构2.用struct关键字创建的一种数据类型值类型狭义结构:用struct关键字创建的一种数据类型值类型面试题:结构和类比较C#中的结构和类相似,结构是有很多制约条件的一种类型相同点:他们都可以有成员变量和方法,构造函数都是用来模拟现实生活事物的 轻量级,不想被继承 结构;轻量级, 类重量级 , 类重量级 ,不想被继承封闭类(存在堆上)不同:结构是值类型 类是引用类型,一般可以被继承结构: l 可以有Main函数l 成员变量不能直接初始化(区别于类 1.)l 静态成员变量 可以直接初始化l 方法(一般非静态) 可以直接初始化l 静态 可以直接初始化l 默认(无参数) 不能包含无参数构造函数(区别 于类 2.)l 有参数(非静态)初始化所有非静态成员 有参数(区别于类 3.)l 可以有析构函数 不能包含(区别于类 4.)如何使用: 差别 结构没有new 初始化所有成员变量可以调用它的变量 否则不能结论:new后调用如同类一样OOP的基本特征:OOP(object oriented programming)面向对象的编成定义:是一种思想也是一种方法,以分类和抽象的方法解决问题的技术 特征:继承,多态,封装优点:可以实现代码的重用,提高开发效率,提高可维护性缺点:度 ,过度 ,性能降低学习重点:贯穿整个项目OOA:(object oriented Analysis)面向对象的OOD:(object oriented design)面向对象的设计继承:在声明类时,在类名称后放置一个冒号,然后指定要继承的类(实现了继承)public class Father : Son Father是派生类 Son是基类如果没有冒号 系统认为是基类object的派生类Father和Son兼容。继承关系 会自动转换为 Son对象 Father优点:代码重用;派生类将获取基类的所有非私有数据和行为以及新类为自己定义的所有其他数据或行为。因此,派生类具有两个有效类型:继承的类型:c#只支持单继承单继承:继承自一个基类多继承:继承2个或以上基类Father son=new Son();/只调父类 Son son=new Son();/可以调父类和自己继承关系相同 调用不同何时用:0608 day10多态性1. 多态性:通过继承,一个类可以用多种类型 可以作用他自己的类型、任何基类型 或者在实现接口时作用任何接口类型。l C#中的每个类型都是多态的 类型可用作他们自己的类型或作用object实例,因为任何类型都自动将object当作基类型。2. 多态性的实现:l 当派生来从基类继承时,它获取得基类的所有方法、字段、属性和事件。l 若要更改基类的数据和行为,您有两种选择:可以使用新的派生成员替换基成员,或者可以重写虚拟的基成员。即多态性主要靠重写和隐藏来实现l 方法隐藏:隐藏基类成员(派生类用和基类相同的名字隐藏基类)3. 隐藏基类中现有方法的步骤:1. 在继承类中声明同名的新方法2. 在该方法名前附加new关键字方法重写:重写基类成员4. 重写基类中现有方法的步骤:1. 在基类中定义虚方法,方法加virtual关键字2. 在继承类中声明同名的新方法3. 在该方法名前附加override关键字隐藏调用的是父类方法 重写调用的是子类方法5. 方法:静态非静态l 一般可以可以l 构造方法可以可以l 析构方法可以不可以l 虚方法:virtual 可以不可以l 隐藏方法:new 可以可以l 重写方法:override可以不可以l 重载方法:一般 看参数可以可以l 抽象方法:abstract可以 不可以 继承类必须实现 override性质:静态非静态类:特性 实例化 继承1.一般 1)一般可以可以2.特殊 2)封闭类 sealed可以 3)抽象类 abstract 可以 4)接口 interface可以抽象类:在类定义中将关键字abstract 置于 class 的前面创建的类抽象类的特点:可被继承不能被实例化抽象类可以包含抽象方法也可以不包含抽象方法抽象方法:是只包含方法的定义,不包含方法的实现,方法定义后面是分号,而不是常规的方法块。 分类:1.放在抽象类中的 有标志abstract 特点:派生类必须实现 不同于虚方法(没有实现)虚方法 放在抽象类中的 抽象方法的区别:虚方法:有实现 继承类 可以重写也可以不重写 如果重写 virtual override抽象方法:没有实现 继承类必须重写 abstract override抽象类的派生类必须实现所有抽象方法。抽象类中定义抽象方法,将关键字 abstract 添加到方法的返回类型的前面,而且关键字 abstract 修饰符的抽象方法,只能存在于抽象类中abstract class A public virtual string Name() . public abstract int Length(); class B : A public override string Name() . public override int Length() . 纯抽象类:抽象类中包含抽象方法 语法不同 abstract class接口:本身就是抽象方法 接口实现:类继承接口,必须实现借口列出的成员 接口继承 :接口继承显示实现不能加 public密封类:在类定义中将关键字 sealed 置于 class 的前面。密封类的特点:可被实例化不能被继承封装:包含和控制对一系列相关信息的访问能力n 把一系列相关的信息包含在一个单元中n 控制访问性封装的目的:l 隐藏内部细节 从而实现保护具有安全稳定性l 便于使用面向对象:规范 定义类中成员变量不公开 private protected 特征:间接手段获得属性,方法,构造函数最好的选择:属性 赋值 取值读写 使用简单方法 赋值 取值读写 不简单构造函数赋值属性:属性是c#中的一种语法结构private int_age; public int age set /读 if(value0) _age=value; get /写 return _age; 为何使用属性:属性是实现封装的一种方式 起到保护类成员变量的作用 调用简洁方便 通过属性可以访问私有成员变量 属性与字段的比较:属性是公有字段的扩展,与字段不同,属性不直接应对存储位置属性与方法的比较:属性与方法不同,属性不使用()(属性的本质相当于2个方法)索引器:是c#中的一种结构访问修饰符 数据类型this数据类型标识符 get ;/get访问器 set ;/set访问器 为何时用:索引器0609 day11委托和事件委托:是c#中的一种引用类型 类似于c/c+中的函数指针委托的用途:主要用于.NET Framework中的事件委托是一种安全的封装方法的类型 委托包含对方法的引用委托可以封装方法那些方法可以分配给该委托与委托的签名由返回类型和参数组成匹配的任何方法一旦为委托分配方法,委托将与该方法具有完全相同的行为委托使用步骤:方法只做委托的参数EventArgs 是包含事件数据的类的基类Public Class EventArgs事件:是类在发生其关注的事情时用来提供通知的一种方式使用事件,对象A可以将关于事件或已发生变化的信息通知其他对象Bl 引发事件的对象 成为发送生方 或事件源l 捕获事件并对其作出相应的对象叫做事件接收方 在事件中,发送方不知道哪个对象或方法将接手处理它引发的事件。故需要在发送方和接受方之间一个媒介计算机通讯方式:1. 查询式2. 通知式事件优缺点:1. 查询式 工业监控系统信息发生频率高,密集,周期性 信息丢失,资源浪费2. 通知式 信息频率不高,不密集。随机性事件 通知事件必须定义在类中定义事件 发布方预定事件:能否给对象预定事件取决于事件是否存在如果事件存在0610 day12集合 是一种通用的数据类型 集合帮助我们集中的存储和操作数据 System.Collections 简介System.Collections.ArrayList类ArrayList类:数组 Array int string 普通固定ArrayList 可变数

温馨提示

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

评论

0/150

提交评论