![partial關(guān)鍵字的含義和使用.doc_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/10/5e49c901-0b73-47c3-bdad-01803950cb94/5e49c901-0b73-47c3-bdad-01803950cb941.gif)
![partial關(guān)鍵字的含義和使用.doc_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/10/5e49c901-0b73-47c3-bdad-01803950cb94/5e49c901-0b73-47c3-bdad-01803950cb942.gif)
![partial關(guān)鍵字的含義和使用.doc_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/10/5e49c901-0b73-47c3-bdad-01803950cb94/5e49c901-0b73-47c3-bdad-01803950cb943.gif)
![partial關(guān)鍵字的含義和使用.doc_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/10/5e49c901-0b73-47c3-bdad-01803950cb94/5e49c901-0b73-47c3-bdad-01803950cb944.gif)
![partial關(guān)鍵字的含義和使用.doc_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/10/5e49c901-0b73-47c3-bdad-01803950cb94/5e49c901-0b73-47c3-bdad-01803950cb945.gif)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
partial關(guān)鍵字 我們?cè)陂_發(fā)WinForm時(shí),經(jīng)常會(huì)看到partial關(guān)鍵字,比如,我們新建一個(gè)Windows Form時(shí),后臺(tái)代碼自動(dòng)添加如下:1publicpartialclassForm1:Form23publicForm1()45InitializeComponent();67 C#高級(jí)編程書中說明:partial關(guān)鍵字允許把類、結(jié)構(gòu)或接口放在多個(gè)文件中。一般情況下,一個(gè)類存儲(chǔ)在單個(gè)文件中,但有時(shí),多個(gè)開發(fā)人員需要訪問同一個(gè)類,或者某種類型的代碼生成器生成了一個(gè)類的某部分,所以把類放在多個(gè)文件中是有益的。 也就是說,我們定義的一個(gè)類可以分開幾個(gè)文件來存儲(chǔ),而各個(gè)文件都只是完成這個(gè)類的一部分功能。我們?cè)谑褂眠@個(gè)類時(shí),根本體會(huì)不到這個(gè)類是由幾部分結(jié)合在一起共同組成的。比如我分別在兩個(gè)地方定義了Box類的一部分:publicpartialclassBoxpublicBox(stringnewBoxName)boxName=newBoxName;/在這個(gè)部分類中,并沒有出現(xiàn)boxName局部變量。但是卻是可以使用的。publicvoidOpen()/打開盒子Console.WriteLine(boxName+isopened);publicpartialclassBoxprivatestringboxName=string.Empty;/boxName是在這個(gè)部分類中定義的哦publicvoidClose()/關(guān)閉盒子Console.WriteLine(boxName+isclosed); 上面的代碼等同于下面的Box類:publicclassBoxprivatestringboxName=string.Empty;publicBox(stringnewBoxName)boxName=newBoxName;publicvoidOpen()/打開盒子Console.WriteLine(boxName+isopened);publicvoidClose()/關(guān)閉盒子Console.WriteLine(boxName+isclosed); 書中還有一段:在把部分類編譯到類型中時(shí),會(huì)合并屬性、XML注釋、接口、一般類型的參數(shù)屬性和成員。 所以自己可以去設(shè)計(jì)一些小Demo去嘗試一下。現(xiàn)在回到最開始的問題,為什么新建立的Winows Form的類定義成了一個(gè)部分類。我們打開Form1.Designer.cs文件,可以看到,原來Form1的另一部分類是在這個(gè)文件中設(shè)計(jì)的。這個(gè)部分類中定義了我們使用的控件、事件委托以及如Dispose方法等。因?yàn)檫@里面的代碼都是自動(dòng)生成的,因此設(shè)計(jì)成了一個(gè)部分類。OK,原來partial如此簡(jiǎn)單,就到這啦!partial關(guān)鍵字的含義和使用 partial關(guān)鍵字 C#2.0提供的新關(guān)鍵字,用來將一個(gè)class、struct或interface的定義拆分,寫在不同的源文件中。每個(gè)源文件包含類定義的一部分,編譯應(yīng)用程序時(shí)將把所有部分組合起來。在以下幾種情況下需要拆分類定義: 1.處理大型項(xiàng)目時(shí),使一個(gè)類分布于多個(gè)獨(dú)立文件中可以讓多位程序員同時(shí)對(duì)該類進(jìn)行處理。 2.使用自動(dòng)生成的源時(shí),無需重新創(chuàng)建源文件便可將代碼添加到類中。Visual Studio 在創(chuàng)建 Windows 窗體、Web 服務(wù)包裝代碼等時(shí)都使用此方法。無需編輯 Visual Studio 所創(chuàng)建的文件,便可創(chuàng)建使用這些類的代碼。 用法如下: modifiers partial type modifier包括abstract new override virtual static extern和四個(gè)訪問修飾符(public private protected internal)其中的一個(gè)。Type包括 class struct interface其中的一個(gè)。 看下面的定義:public partial class Employee. public void DoWork() .public partial class Employee. public void GoToLunch() . 以上代碼定義了一個(gè)類Employee,該類有兩個(gè)方法DoWork()和GoToLunch(),你完全可以把以上代碼看作是: 而實(shí)際上編譯器在編譯時(shí)也是這么合并的。編譯器在編譯時(shí)會(huì)把一個(gè)partial類所有的信息放到一起,我們可以再來擴(kuò)充一下。假如我們已經(jīng)定義好了兩個(gè)接口:我們的類定義如下: 這在開發(fā)分布式系統(tǒng)時(shí)是很有必要的,多個(gè)程序員只要分別開發(fā)自己的一部分就可以了。public class Employee. public void DoWork(). public void GoToLunch(). interface IDoSomeThing. void DoWork(); void DoPlay();interface IGoToDinner. void GoToBreakfast(); void GoToLunch(); void GoToSupper();public partial class Employee : IDoSomeThing. public void DoWork() . public void DoPlay() .public partial class Employee : IGoToDinner. public void GoToBreakfast() . System.ObsoleteAttribute public void GoToLunch() . public void GoToSupper() .于是,在編譯時(shí)編譯器就把以上合并為一個(gè)類:public class Employee : IDoSomeThing, IGoToDinner. public void DoWork() . public void DoPlay() . public void GoToBreakfast() . System.ObsoleteAttribute public void GoToLunch() . public void GoToSupper() . 其中有幾點(diǎn)需要注意:1. 要作為同一類型的各個(gè)部分的所有分部類型定義都必須使用 partial 進(jìn)行修飾。下面這樣就錯(cuò)誤public partial class A /public class A / Error, must also be marked partial2.partial 修飾符只能出現(xiàn)在緊靠關(guān)鍵字 class、struct 或 interface 前面的位置。3. 分部類型定義中允許使用嵌套的分部類型。當(dāng)然,如果嵌套類也是partial類的話,同樣遵守上面的規(guī)則。例如:partial class ClassWithNestedClass. partial class NestedClass . partial class ClassWithNestedClass. partial cla
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人社部的勞動(dòng)合同(三篇)
- 2025年九年級(jí)英語下冊(cè)教學(xué)工作總結(jié)范例(二篇)
- 2025年中外來料加工、來件裝配合同樣本(2篇)
- 2025年代理權(quán)轉(zhuǎn)讓的合同(2篇)
- 2025年企業(yè)產(chǎn)品購銷合同參考模板(三篇)
- 2025年九年級(jí)英語培優(yōu)輔差總結(jié)樣本(二篇)
- 人工智能居間服務(wù)合同范本
- 親子餐廳裝修施工合同樣本
- 植生混凝土技術(shù)施工方案
- 木材加工居間合作協(xié)議
- 軟星酒店網(wǎng)絡(luò)規(guī)劃與設(shè)計(jì)
- 自然辯證法概論(新)課件
- 基層醫(yī)療機(jī)構(gòu)基本情況調(diào)查報(bào)告
- 六西格瑪(6Sigma)詳解及實(shí)際案例分析
- 機(jī)械制造技術(shù)-成都工業(yè)學(xué)院中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 電解槽檢修施工方案
- 正常分娩 分娩機(jī)制 助產(chǎn)學(xué)課件
- 廣東縣級(jí)農(nóng)商銀行聯(lián)社高管候選人公開競(jìng)聘筆試有關(guān)事項(xiàng)上岸提分題庫3套【500題帶答案含詳解】
- 中國(guó)成人住院患者高血糖管理目標(biāo)專家共識(shí)課件
- 讀書分享-精力管理課件
- 新上崗干部的90天轉(zhuǎn)身計(jì)劃課件
評(píng)論
0/150
提交評(píng)論