文稿教程課件_第1頁
文稿教程課件_第2頁
文稿教程課件_第3頁
文稿教程課件_第4頁
文稿教程課件_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

C程序設(shè)計及應(yīng)用Copyright? PTAll 第4C

唐大仕 本章內(nèi)

4.1 4.24.3 Lambda4.4 4.5 4.6 Attribute4.7 C#4.8 唐大仕 L4 唐大仕4第4C

4.1大致上 唐大仕 委托是對函數(shù)原型的包publicdelegatedouble MyDelegate(double xMyDelegated d2=newMyDelegate(obj.myMethod委托變量名(參數(shù)列表d2(8.9) 唐大仕

6委托示 唐北

7C#4以上版本定義了很多的委Action<T1,T2>Func<T1,T2,Tresult>如newFunc<double,double>(Math.Sin);

8 唐大仕 委托的合 運(yùn)算符+ += 唐北

9委托的轉(zhuǎn)換與相

delegatevoidD(intadelegatevoidE(inta 唐北 總 唐大仕 LL 唐大仕 第4C

大致上 唐大仕 用戶界面中

this.button1.Clickthis.button1.Click+=new{this.label1.Text=} 唐大仕 的publicevent 名+= 或- 所在類的外面,只能用以上兩個運(yùn)算名(參數(shù)列表 唐大仕 實(shí)網(wǎng)絡(luò)爬EventWhenDownload.cs

唐大仕 定義及使 的6步參數(shù)類:

公用

在一個類

:publicevent類型名 在別的類

void方法名(obj new委托(方法名 唐大仕 與委托的關(guān) 限制(在類外只能用+=或- 大仕 t

與委托的關(guān) 修飾符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(參數(shù)方法體 newThread(newThreadStart(delegate(){…….})newThread(delegate(){…….} 唐大仕 Lambda表達(dá)

省略delegate,例button1.Click+=(sender,e)=>{……}newThread(()=>{….}).Start();PlotFun( x=>x*x,0,100 唐大仕 Lambda表達(dá)

Lambda表達(dá)式 不寫(參數(shù)) 唐大仕

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表達(dá)式使用=>Linq使用from,where,select 唐大仕 示 在不同C#版本中使用delegateambdaambda 唐大仕 LL 唐大仕 第4C

唐大仕 運(yùn)算

使用運(yùn)算符的例this.Location+=newSize(10,10);TimeSpandiff=date2–date1;Strings1,s2; if(s1==s2)如兩個復(fù)數(shù)用a+b比a.Add(b)運(yùn)算符重載有一些限 唐大仕 運(yùn)算符 publicstatic類型operator一元運(yùn)算(類型數(shù)名){…… publicstatic類型operator二元運(yùn)算符(類型參數(shù)名,類型參數(shù)名){……} publicstaticimplicitoperator(數(shù)名){……publicstaticexplicitoperator(類型數(shù)名){……

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(信息

唐大仕 創(chuàng)建用戶自定義異常從Exception或ApplicationExceptionthrows;thrownewExcepiton(“msg”, e這里eInnerException 大仕

算術(shù)溢出與

對整個程序csc /checked

XXXX.cs針對表達(dá)式checked(表達(dá)式uncheckd(表達(dá)式針對塊語句checked{……}uncheckd{……}try{ }catch(OverflowExceptione) e學(xué)dTest.cs 總 C#try{… catch(Exceptione){… finally{…. 從Exception或ApplicationException e學(xué)dTest.cs LLibute 唐大仕 第4C

唐大仕 使用Attribute的例

[Serializable]publicsealedclassString:IComparable,Icloneable, IConvertible,Ienumerable[STAThread]staticvoid 唐大仕

class{voidGetCustomers(){…stringTest([SomeAttr]stringparam1)} 唐大仕 使用系統(tǒng)定義的使用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

唐大仕 編譯預(yù)處1#define#undef“2#if,#elif,#else,#endif3#error和#warning4#line 行

唐大仕 unsafe及指1.unsafe2.fixedfixed( 類型*指針名=表達(dá)式)3.sizeofsizeof(簡單或結(jié)構(gòu)類型名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}} 唐大仕 其他關(guān)鍵

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 唐大仕 類的成

常數(shù)(const)它代表了與類相 域(field) 方法(method)它實(shí)現(xiàn)了可以被類實(shí)現(xiàn)的計算和行 屬性(property)它定義了命名的屬性和與對這個屬性進(jìn)行讀寫的相關(guān)行為 (event)它定義了由類產(chǎn) 索引(indexer) 唐大仕 類的成員(續(xù)

它定義了可以被應(yīng)用于類的實(shí)例上的表達(dá)式運(yùn)算 實(shí)例構(gòu)造函數(shù)(instanceconstructor)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論