無奈最近坎尼搬家 整理東西就夠頭大了
昨天還整理到睡著 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 這個方法了
只要注意該傳入哪種的轉換模式即可
利用這個方式
我們可以編寫許多會用到的型別處理方法
像範例這種轉換 就是台灣特有的文化之一 (尤其是公部門常會要求)
沒有留言:
張貼留言