2008年7月29日

ASP.NET 3.5 -- 擴充方法

本來這篇前幾天就要發的
無奈最近坎尼搬家 整理東西就夠頭大了
昨天還整理到睡著 orz
今天中午休息一趴下去就沒醒來過 (我是指中途醒來)


好了 今天要講的是.net 3.5的新功能 -- Extension Methods

還記得坎尼在 阿拉伯數字轉中文數字 裡提到的方法嗎?
這個就很適合做在 string的擴充方法裡

好啦 我們就直接看抓圖吧


首先新增一個class 坎尼給他取名叫 myExtentions
裡面會有個 靜態 的class
再來就是轉換的Method 注意 一樣要宣告成 靜態

其他的跟寫一般的method沒兩樣
比較需要注意的是 要擴充的型別前要加上 this 關鍵字

以上圖這個範例來講 因為我們要擴充的是 string 類別
所以在第一個傳入參數前面加上 this
且 Intellisense 會自動把那個參數當作預設要處理的 string
所以 myText.Text.TaiwaneseNumber("") 這裡只需要傳入一個參數
也就是後面的 strMode



這是坎尼稍稍改寫過的Method範例
當然大家也可以繼續往下擴充
目前範例中支援四種轉換模式


當然 在呼叫這個擴充方法前
需要先 using 擴充方法的 namespace (上圖是using myExtentions)

接下來 只要是 string 的類別
都可以呼叫 TaiwaneseNumber 這個方法了
只要注意該傳入哪種的轉換模式即可

利用這個方式
我們可以編寫許多會用到的型別處理方法
像範例這種轉換 就是台灣特有的文化之一 (尤其是公部門常會要求)

沒有留言:

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D