這個特性是從.net3.5的時候開始出現的,是指在原有類中插入乙個方法,用於給原有類擴充套件新的功能的方法。給我的感覺就是有點類似於外掛程式的意思。
比如下面的**:
1namespace extendfunction
2 11 }
12static
class extclass
13
18 }
19 }
雖然我上面的**有雞肋的嫌疑,但是至少能說明什麼是擴充套件方法
。很明顯,正常的datetime
中是不會有to_ch方法的,我在下面通過extclass給datetime
插入了乙個新的方法,然後datetime
中就有了這樣乙個方法了。我這裡只是舉乙個例子而已,理論上可以給任意的方法進行擴充套件。我嘗試在wpf
中擴充套件textblack類,我要的目的是在指定時間內,使用backgroundworker自動更新內容,但是遭遇了跨執行緒
的問題。我沒找到是為什麼,所以我做了小小更改,還是乙個雞肋的功能,使用wpf
+backgroundworker+擴充套件方法
做乙個小demo,更新時間(= =|||我感覺更雞肋了)。。。
那麼擴充套件方法
我寫成了這樣:
1public
static
class extfunc
2 ));
13 }));
14 bw.runworkercompleted += new runworkercompletedeventhandler(new action((sender, e) =>
15 ));
18new dispatchertimer(interval, dispatcherpriority.loaded, new eventhandler(new action((sender, e) =>
19
24 })), t.dispatcher).start();
25 }
26 }
說實話,我覺得上面這段**都有json的風格了,開個玩笑,只是我喜歡做一些非常規的事情而已,上面只是用到了一些新特性而已和匿名類而已,我想如果有人能輕鬆的閱讀我的**,那麼估計不是高手也是熟練吧,我倒不是說是我寫的**有多麼好,而是我寫的很亂。
xaml的前台只需要乙個textblock配合,我這裡不寫多了,就一句,具體在哪用,看你的需要了。
<textblock
canvas.left
="66"
canvas.top
="7"
height
="23"
name
="_t"
text
=""width
="643"
fontsize
="14"
/>
但是需要還需要在xaml的cs**中寫一句,你可以放在按鈕事件裡,也可以放在window_loaded事件中,我放在了window_loaded事件中。
_t.async(new timespan(0, 0, 1));
跟新時間,間隔1秒。
雖然用處不大,但是如果能幫助你學習,那麼就可以了,高手無視掉吧。
C 中的擴充套件方法
c 中的擴充套件方法用來為現有型別新增方法,以擴充套件現有的型別,這些型別可以是基本的資料型別 如int string等 也可以是自己定義的型別。擴充套件方法是通過指定關鍵字this修飾方法的第乙個引數而宣告的。擴充套件方法只可以宣告在靜態類中。以下為擴充套件基本型別string public st...
C 中的擴充套件方法
擴充套件方法的目的就是向乙個現有型別中新增方法,現有型別可以是已存在的型別,比如int,string等資料型別,也可以是我們自定義的資料型別。擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。某個已經存在資料型別,該型別下的方法無法滿足我們的需求,這個時候就需要我們自己...
C 中的擴充套件方法
擴充套件方法使用 在實際專案中,通常會定義乙個靜態類,類中包含一些常用的操作方法 如字串處理,判斷字串是否是正確的 號碼或者email等 將這些方法定義為靜態方法,c 3.0中引入擴充套件方法的概念,使用方式 在使用擴充套件方法的第乙個引數前面加this關鍵字。下面演示了擴充套件方法的簡單使用 st...