無奈最近坎尼搬家 整理東西就夠頭大了
昨天還整理到睡著 orz
今天中午休息一趴下去就沒醒來過 (我是指中途醒來)
好了 今天要講的是.net 3.5的新功能 -- Extension Methods
還記得坎尼在 阿拉伯數字轉中文數字 裡提到的方法嗎?
這個就很適合做在 string的擴充方法裡
好啦 我們就直接看抓圖吧
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhksm-x4qfgoUe0OLs_h5e4ys1NTTn0SScaWC3BramKqFG2vHCBVKyxjyXliC1eeIBzrqBLCQhD3GeMy78kx5KFymwWnaZu_z3xeLHL172xR-9vnY3apABexMqhEur7_Y3_riMlLJeXXRyo/s400/Extend1.png)
首先新增一個class 坎尼給他取名叫 myExtentions
裡面會有個 靜態 的class
再來就是轉換的Method 注意 一樣要宣告成 靜態
其他的跟寫一般的method沒兩樣
比較需要注意的是 要擴充的型別前要加上 this 關鍵字
以上圖這個範例來講 因為我們要擴充的是 string 類別
所以在第一個傳入參數前面加上 this
且 Intellisense 會自動把那個參數當作預設要處理的 string
所以 myText.Text.TaiwaneseNumber("") 這裡只需要傳入一個參數
也就是後面的 strMode
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4zIG4ashEflaR1W8p99BhXTcvrtNGxZiSZsYq80tY9FLOrpTbv1YI9Bkj1WJ5ripnncLFfkoY69eNE-uriNDoQC1exfnME0hVNeNE9WM3WYouIbyKNu_1zP0hyphenhyphenFVBNSlEYUsXa69OEtz8/s400/Extend2.png)
這是坎尼稍稍改寫過的Method範例
當然大家也可以繼續往下擴充
目前範例中支援四種轉換模式
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhssvA_8LDBZSNhailHHy3Q3Ch81JzZReMYkxEgJnSZruuBI_9JU8jmqeXqi2G7f0FcQTl3buhvJLTT4ZAbgqmgxkiqLpzi9rj6l7z5H9XGUZXtuWQMhti4iD0UC5uFA5a5l8rCE2VS-dOn/s400/Extend3.png)
當然 在呼叫這個擴充方法前
需要先 using 擴充方法的 namespace (上圖是using myExtentions)
接下來 只要是 string 的類別
都可以呼叫 TaiwaneseNumber 這個方法了
只要注意該傳入哪種的轉換模式即可
利用這個方式
我們可以編寫許多會用到的型別處理方法
像範例這種轉換 就是台灣特有的文化之一 (尤其是公部門常會要求)
沒有留言:
張貼留言