在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