使用 Google 搜尋本站文章:
首頁 | CodeCharge 討論板 | 部落格 | ASP.NET 電子書 | 所有文章 | 相簿 | News | 網站導讀 | 聯絡 Allen | 訂閱 RSS
Microsoft MVP 
since 2004 
 


屬性的應用範例

By Allen Kuo, 建立日期:2008/12/19 08:49 ,最後修改日期:2008/12/21 21:23
在C#, VB.NET語法書裡都會教到class, method, property如何寫, 大部份的人都很常寫method,但比較會忘記去寫property...
    加入書籤: 收進你的MyShare個人書籤

在C#, VB.NET 語法書裡都會教到 class, method, property 如何寫, 大部份的人都很常寫 method ,但比較會忘記去寫 property 。

以圖一為例, TextBox 裡只能輸入數字, 若希望按下 "儲存值" 時, 能將 TextBox 裡的值存檔, 稍後按下 "取得值" 時, 能在 Label 裡顯示值, 若一開始 TextBox 沒有值就先按 "取得值" , 則 Label 顯示 0, 那麼程式要如何寫呢?


(圖一)

 

在這個例子裡, 您可以將 TextBox 值存放在 Session, Cookie, ViewState 裡, 若採用 ViewState, 程式碼應該大約像圖二, 雖然直覺, 但您可以發現:

1) 程式碼裡, key值(也就是 Price 這個字)一直被重覆寫, 比較難維護
2) 如果一支程式裡有用到多個不同的 ViewState 時, 程式碼會比較難閱讀些
2) 程式碼裡充滿了 ViewState[...] 這類的程式碼片段, 日後若想改用 Session or Cookie 時, 要改的地方會比較多


(圖二)

 

由於網頁其實也是一個 class (類別), 所以在網頁裡, 您寫的 Button1_Click(...), 其實就是這個類別的 method(方法), 如果您換個方法來想, 為這類別寫一個 Property(屬性), 程式碼看起來就會比較好閱讀些, 如圖三所示, 在我加寫了一支 Price 屬性後, Button1_Click(), Button2_Click() 裡的程式碼, 是不是覺得比較好閱讀了呢?


(圖三)

 

如圖四所示, 如果哪天您想改用 Session 來存, 只需要改 Property 的程式碼, 其他的程式碼(例如 Button1_Click, Button2_Click ) 就不必改了,


(圖四)

 

在撰寫程式時, 如果程式經常用到一些細節, 不妨考慮將它包起來, 以這文章為例, 由於程式常存取一個值, 又要判斷值是否存在, 那麼將它包起來, 存取它時, 就會比較簡單一些。

我這裡的例子, 只有一頁需要存取值, 如果您遇到的狀況是有多頁需要存取它, 則考慮另外寫一支 class, 由各頁去存取它。

 

2008/12/21補充: 很久以前我看過 Jeff 寫的 用屬性封裝 Session 及 ViewState 的存取 , 今天無意間又看到, 我這篇的內容跟他是相似的, 習慣用 VB.NET 的人可以參考他的 code


Copyright © AllenKuo.com , 2000 - 2010