C#網(wǎng)絡(luò)編程中常用特性介紹_第1頁
C#網(wǎng)絡(luò)編程中常用特性介紹_第2頁
C#網(wǎng)絡(luò)編程中常用特性介紹_第3頁
C#網(wǎng)絡(luò)編程中常用特性介紹_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

第C#網(wǎng)絡(luò)編程中常用特性介紹特性一:委托

委托是C#語言中特有的概念,相當(dāng)于C/C++中的函數(shù)指針,與C/C++中函數(shù)指針的不同之處是:委托是面向?qū)ο蟮摹㈩愋桶踩暮捅kU的,是引用類型。因此,對委托的使用要

先定義、后聲明,接著實例化、然后作為參數(shù)傳遞給方法,最后才能使用。

1、定義委托使用關(guān)鍵字delegate:

delegatevoidSomeDelegate(type1para1,......typenparan);

2、聲明委托:

SomeDelegated;

3、實例化委托:

d=newSomeDelegate(obj.InstanceMethod);

其中obj是對象,InstanceMethod是它的實例方法。

4、作為參數(shù)傳遞給方法

someMethod(d);

5、最后在此方法的實現(xiàn)代碼中使用委托

private

void

someMethod(SomeDelegate

someDelegate)

.....

//使用委托

someDelegate(arg1,arg2,....,argn);

......

}

通過委托SomeDelegate實現(xiàn)對方法InstanceMethod的調(diào)用,調(diào)用還必須有一個前提條件:方法InstanceMethod有參數(shù)且和定義SomeDelegate的參數(shù)一致,并且返回類型相同(本例中為void)。方法InstanceMethod的定義:

private

void

InstanceMethod(type1para1,type2para2,......,typenparan)

//方法體

.....

}

委托的實例化中的參數(shù)既可以是實例方法,也可以是靜態(tài)方法。

使用委托實現(xiàn)文字抄寫員的小程序,界面如下:

在下方文本框中編輯文字,勾選書寫到組框中的文本區(qū)1和(或)文本區(qū)2復(fù)選框后單擊提交按鈕,程序會自動將文本框中的文字抄寫到對應(yīng)的用戶勾選的文本區(qū)中去。

代碼實現(xiàn)如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

usingSystem.Windows.Forms;

namespaceDelegateDemo

publicpartialclassFrmMain:Form

publicFrmMain()

InitializeComponent();

//1、定義委托

privatedelegatevoidWriteToTextBox(stringstrTxt);

//2、聲明委托

privateWriteToTextBoxwriteToTextBox;

///summary

///提交

////summary

///paramname="sender"/param

///paramname="e"/param

privatevoidbtn_OK_Click(objectsender,EventArgse)

if(chbOne.Checked)

gbJobOne.Text="運行中......";

gbJobOne.Refresh();

txtJobOne.Clear();

//3、實例化委托

writeToTextBox=newWriteToTextBox(WriteTextBox1);

//4、將委托作為方法的參數(shù)進(jìn)行傳遞

WriteText(writeToTextBox);

gbJobOne.Text="任務(wù)1完成";

if(chbTwo.Checked)

gbJobTwo.Text="運行中......";

gbJobTwo.Refresh();

txtJobTwo.Clear();

//3、實例化委托

writeToTextBox=newWriteToTex

溫馨提示

  • 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

提交評論