版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C程序设计及应用Copyright© PTAll 第4C
唐大仕 本章内
4.1 4.24.3 Lambda4.4 4.5 4.6 Attribute4.7 C#4.8 唐大仕 L4 唐大仕4第4C
4.1大致上 唐大仕 委托是对函数原型的包publicdelegatedouble MyDelegate(double xMyDelegated d2=newMyDelegate(obj.myMethod委托变量名(参数列表d2(8.9) 唐大仕
6委托示 唐北
7C#4以上版本定义了很多的委Action<T1,T2>Func<T1,T2,Tresult>如newFunc<double,double>(Math.Sin);
8 唐大仕 委托的合 运算符+ += 唐北
9委托的转换与相
delegatevoidD(intadelegatevoidE(inta 唐北 总 唐大仕 LL 唐大仕 第4C
大致上 唐大仕 用户界面中
this.button1.Clickthis.button1.Click+=new{this.label1.Text=} 唐大仕 的publicevent 名+= 或- 所在类的外面,只能用以上两个运算名(参数列表 唐大仕 实网络爬EventWhenDownload.cs
唐大仕 定义及使 的6步参数类:
公用
在一个类
:publicevent类型名 在别的类
void方法名(obj new委托(方法名 唐大仕 与委托的关 限制(在类外只能用+=或- 大仕 t
与委托的关 修饰符event 委托类型 {
add{e+=value;remove{ e-=value; } 唐大仕 总 唐大仕 综合示
使用C#多种语法要素(特别是event及Exception)BankSystem-v1-v2 唐大仕 LLamda 唐大仕 第4C
唐大仕 csharp语言新特
C#2.0 C#3.0 引入Lambda及LinqC#4.0 唐大仕 泛型
List<Book>books=newList<Book>();Bookbook=books[0];ArrayListbooks=newArrayList();Bookbook (Book)books[0]; 唐大仕 方 delegate(参数方法体 newThread(newThreadStart(delegate(){…….})newThread(delegate(){…….} 唐大仕 Lambda表达
省略delegate,例button1.Click+=(sender,e)=>{……}newThread(()=>{….}).Start();PlotFun( x=>x*x,0,100 唐大仕 Lambda表达
Lambda表达式 不写(参数) 唐大仕
LINQ:LanguageIntegratedQueryfromcincustomerswherec.Age>10orderbyc.Nameselect new{c.Name,c.Phone}customers.Where(c=>c.Age>10).OrderBy(c=>c.Name)..Select(c=>new{c.Name,c.Phone 唐大仕 Linq示
int[]arr=newint[]{8,5,89,3,56,4,1,58varm=fromninarrwheren<5orderbynselectn*n;foreach(varninm){Console.Wri ine(n);} 唐大仕 总 Lambda表达式使用=>Linq使用from,where,select 唐大仕 示 在不同C#版本中使用delegateambdaambda 唐大仕 LL 唐大仕 第4C
唐大仕 运算
使用运算符的例this.Location+=newSize(10,10);TimeSpandiff=date2–date1;Strings1,s2; if(s1==s2)如两个复数用a+b比a.Add(b)运算符重载有一些限 唐大仕 运算符 publicstatic类型operator一元运算(类型数名){…… publicstatic类型operator二元运算符(类型参数名,类型参数名){……} publicstaticimplicitoperator(数名){……publicstaticexplicitoperator(类型数名){……
LL处 唐大仕 第4C
唐大仕 异常的概
C#try{……catch(Exceptione){… finally{….. System.ExceptionpublicException();publicException(stringMessageStackTrace 唐大仕 几种常用的异常
System.OutOfMemoryExceptionSystem.StackOverflowExceptionSystem.NullReferenceExceptionSystem.TypeInitializationExceptionSystem.InvalidCastExceptionSystem.ArrayTypeMismatchExceptionSystem.IndexOutOfRangeExceptionSystem.MulticastNotSupportedExceptionSystem.ArithmeticExceptionSystem.DivideByZeroExceptionSystem.OverflowException 唐大仕 捕获和处理异try{ catch(AException catch(BException catch(更一般的Exception finally{ 注:catch{} 大 ionIndexOutOf.cs
抛出异throwthrowexpressionif(xxxxxx) thrownewSomeException(信息
唐大仕 创建用户自定义异常从Exception或ApplicationExceptionthrows;thrownewExcepiton(“msg”, e这里eInnerException 大仕
算术溢出与
对整个程序csc /checked
XXXX.cs针对表达式checked(表达式uncheckd(表达式针对块语句checked{……}uncheckd{……}try{ }catch(OverflowExceptione) e学dTest.cs 总 C#try{… catch(Exceptione){… finally{…. 从Exception或ApplicationException e学dTest.cs LLibute 唐大仕 第4C
唐大仕 使用Attribute的例
[Serializable]publicsealedclassString:IComparable,Icloneable, IConvertible,Ienumerable[STAThread]staticvoid 唐大仕
class{voidGetCustomers(){…stringTest([SomeAttr]stringparam1)} 唐大仕 使用系统定义的使用Attribute的一般方可以省略“Attribute”几个字母,只写
示在Main()方法使用[STAThread][assembly: pany("")] 唐大仕 自定义
Attribute从System.Attribute2.使用Attribute3.通过反 riteHelp.cs classclassHelpUrlAttribute:System.Attribute{publicHelpUrlAttribute(stringurl){…}…}classSomeClass{…Attachedtotypesand•AttributescanbeAttachedtotypesand•Typetype=Type.GetType(“SomeClass”);object[]Typetype=Type.GetType(“SomeClass”);object[]attributes=type.GetCustomAttributes(); 唐大仕 LL成 唐大仕 第4C
唐大仕 编译预处1#define#undef“2#if,#elif,#else,#endif3#error和#warning4#line 行
唐大仕 unsafe及指1.unsafe2.fixedfixed( 类型*指针名=表达式)3.sizeofsizeof(简单或结构类型名4.stackalloc
唐sCopy.cs 指针示
classFileStream:{int[dllimport("kernel32",SetLastError=true)]staticexternunsafeboolReadFile(inthFile,void*lpBuffer,intint*nBytesRead,Overlapped*publicunsafeintRead(byte[]buffer,intindex,intintn=0;fixed(byte*p=buffer)ReadFile(handle,p+index,count,&n,
count)}return}} 唐大仕 其他关键
1.lock多线程程序中,lock2.volatile随时可能被程序以外的其他因素所修改。域被volatile修饰时,会 唐大仕 LL 唐大仕 程序的组
名字空间程序的逻辑组织嵌套类型类中嵌套类型 唐大仕 名字空2namespace xxx.xxxx{usingxxx.xxxx;4using别名=名字空间或类名
唐me 嵌套类
classA{publicclassB{publicstructC{}}newA.B.C(); 唐s 程序在VS.NET上程序
唐大仕
csc/target:mod/out:Add.modAdd.cscsc/target:mod/out:Multi.modMulti.csal/target:library/out:MyLibrary.dllAdd.modMulti.csc/target:exe/out:My y.dllMy 唐大仕 C#语法的小
唐大仕 类 类class struct interface enum delegate 唐大仕 类的成
常数(const)它代表了与类相 域(field) 方法(method)它实现了可以被类实现的计算和行 属性(property)它定义了命名的属性和与对这个属性进行读写的相关行为 (event)它定义了由类产 索引(indexer) 唐大仕 类的成员(续
它定义了可以被应用于类的实例上的表达式运算 实例构造函数(instanceconstructor)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级语文下册 第五单元教学实录 新人教版
- 幼儿园小班安全工作计划15篇
- 小学高级教师申报述职报告汇编5篇
- 2024-2025学年新教材高中生物 第四章 生物的变异 第四节 人类遗传病是可以检测和预防的教学实录(2)浙科版必修2
- 湖南省益阳市八年级地理下册 8.1 自然特征与农业(西北地区)知识梳理型教学实录 (新版)湘教版
- 军训心得体会23篇
- 工作业绩个人总结2022十篇
- 2024年版3D打印设备采购合同
- 2024年股权转让合同及附属协议
- 八年级语文上册 第五单元 24大道之行也教学实录 新人教版
- 【MOOC】信号与系统-西北工业大学 中国大学慕课MOOC答案
- 《半导体的基本知识》教学设计
- 江苏省南通市2024届高三上学期第一次调研测试(一模)生物 含答案
- 2024年四川省内江市中考历史试卷
- 科研团队协作管理制度
- 拓展训练融入初中体育教学的创新策略与实施路径
- 国网安全责任清单培训
- 少儿春晚合同模板
- 医用机械外骨骼产品供应链分析
- 2024年氢工艺作业考试题库及答案(700题)
- 学校中层干部管理提升培训
评论
0/150
提交评论