maxi

麥克斯做個不宅的工程師

使用Partial Class的時機

在.NET 2.0新增的Partial Class功能,讓一個Class的定義可以分拆成好幾個,除了.NET自動產生程式碼會使用到,Partial Class還有甚麼其他使用時機,以下是我的發現。

1. 當一個Class變得太大的時候,以前是用#region去分區的,現在用Partial Class去分,更簡潔,把該區的特性形容在檔案名稱中,更是簡單易懂。例如 TcpServer.Communication.cs.

2. 當你的Source Control是鎖定檔案的時候,把一個Class分成好幾個檔,就可以跟你的隊員各自改同一個Class的不同部份了。

3. 當你有一些工具產生的Code,例如Linq的.dbml,你要加一些方法或屬性,如果直接加在.design.cs,那麼下一次自動產生Code時,你又要重新寫一次,用Partial Class就可以解決這個問題。

My WP Blog with english technical docs.


關連文章

  1. 91 2010/1/5 下午 06:39 回覆

    # re: 使用Partial Class的時機

    補充一下,Partial Class要小心全域變數的問題。

    如果兩支程式有命名相衝,要嘛會掛掉,要嘛會很難找錯誤。

    所以,如果可以定義共用的部分,可以先做個super class去做繼承。

  2. gipi 2010/1/5 下午 08:43 回覆

    # re: 使用Partial Class的時機

    當初Partial Class推出來時我還記得那時候的講師是說可以讓兩個人同時開發同一個Class,最後再Compile在一起...但我一直沒去用他...
    後來我只用在將太複雜的的Class分成數個Class,減少同一個Class被簽出太久的問題...也就是上頭提到的1跟2吧...

    這個情況下還蠻好用的...:)

  3. Maxi 2010/1/6 下午 04:22 回覆

    # re: 使用Partial Class的時機
    To: 91
    通常會過大的code都是methods而不是properties,所以其實我properties都還是放在同一個裡面,很少會有命名相衝的問題.不過如果多人開發又同時都要加properties就避免不了.
    To: gipi
    就是你說的那樣子

回應

標題 *
名稱 *
Email (將不會被顯示)
Url
回應
登入後使用進階評論
Please add 1 and 7 and type the answer here: