c 2 0語法新關鍵字 partial

2021-05-11 12:05:45 字數 2010 閱讀 7508

使得使用該書的您很容易過渡到.net2.0,或者說讓您更明白微軟為什麼這麼做,看完本文您就應該明白是因為需要才促使語言的公升級,而不是因為公升級促使需要

請看下面示例**:

publicpartialclass sampleclass

} publicpartialclass sampleclass

} 這裡定義了乙個類sampleclass,它包含methoda和methodb兩個方法,和我們常見的不同,這個類的兩個方法是分開定義的,它的作用和下面相當。

public class sampleclass

public void methodb()

} 「本文主要引用了劉敏的文章,下面是它從windows窗體設計的角度理解pritial提出的原因,當然天天這裡並不贊同,但是為了保持引用的完整性質,下面列出了它的解釋

我猜想這個東西出現的初衷是為了解決掉:「窗體設計器生成的**」這個令人討厭的

region。

對我們來說,在團隊開發當中這個東西或許也會有點用處。

我觀察了一下生成的 il **,使用partial生成的**並沒有什麼特殊的標記,這

說明partial純粹是語言的特性,clr 完全不知道這麼個玩意的存在,這也就意味著

不要指望將partialclass 編譯為 assembly 或者 module 什麼的再與其他的人寫的

partialclass 去進行拼接:它只能在編譯的時候起作用。

為了考驗一下編譯器,我試著讓某乙個partialclass 不顯式指定父類,發現**仍

然能夠正確的通過編譯,編譯器會按照某乙個顯式指定了父類的partial進行編譯,

只有在多個partial指定了不同父類時才會報錯。同樣,如果多個partial指定了自

相矛盾的修飾符的話,編譯時也會報錯的。

有意思的是,我們還可以寫以下這樣的**:

publicpartialclass sample}}

publicpartialclass sample}}

-- 以上內容來自劉敏(rustle liu)的blogs,**為

以下是天天的解釋。

下面我們從asp.net開發的角度介紹partial的使用原因

在asp.net1.1版本裡,您應該知道,如果我們在webform1上放置了乙個控制項,例如id為button1的按鈕則

*.aspx會做如下記錄

而*.aspx.cs會做如下記錄

protected button button1 ;  //定義了乙個button類物件button1

由於這種關係,使得系統的維護變的非常困難,特別是在稍微複雜的應用程式中,改動一點有時需要重新編譯整個專案。而且更為難辦的是,如果你在程式裡按照如下使用

*.aspx

protected button button1 ;  //定義了乙個button類物件button1

而忘記在*.aspx定義button1,系統還會提示

「未將物件引用設定為例項」的錯誤

為了解決這些問題,.net2.0才提出了partial關鍵字,它使得如下的使用是正確的

你在*.aspx裡定義了乙個按鈕如

這樣您在*.aspx.cs裡就可以直接使用button2,不用再定義類似 button button2;這樣的物件,系統通過paritial自動將button2關聯起來。所以提高了維護性。

source: c#2.0語法新特定 - 李萬寶 -

c 2 0語法新特定

再是因為需要才促使語言的公升級,而不是因為公升級促使需要 請看下面示例 public partial class sampleclass public partial class sampleclass 這裡定義了乙個類sampleclass,它包含methoda和methodb兩個方法,和我們常見...

C 2 0類和物件學習系列之this關鍵字

c 允許在類的所有例項方法中使用this關鍵字。這個關鍵字是乙個對當前正在動作的方法所在物件的引用,因此this關鍵字不允許用在靜態方法中。c 中,this關鍵字似的方法引數的名字不必可以與宣告型別的一些欄位和屬性不同。因為在方法體中,類的成員可以通過this訪問,而不帶this字首的名稱優先為引數...

C 2 0類和物件學習系列之this關鍵字

c 允許在類的所有例項方法中使用this關鍵字。這個關鍵字是乙個對當前正在動作的方法所在物件的引用,因此this關鍵字不允許用在靜態方法中。c 中,this關鍵字似的方法引數的名字不必可以與宣告型別的一些欄位和屬性不同。因為在方法體中,類的成員可以通過this訪問,而不帶this字首的名稱優先為引數...