文稿教程课件_第1页
文稿教程课件_第2页
文稿教程课件_第3页
文稿教程课件_第4页
文稿教程课件_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论