C 中的擴充套件方法

2022-04-10 02:58:18 字數 1692 閱讀 9395

這個特性是從.net3.5的時候開始出現的,是指在原有類中插入乙個方法,用於給原有類擴充套件新的功能的方法。給我的感覺就是有點類似於外掛程式的意思。

比如下面的**:

1

namespace extendfunction

2 11 }

12static

class extclass

13

18 }

19 }

雖然我上面的**有雞肋的嫌疑,但是至少能說明什麼是擴充套件方法

。很明顯,正常的datetime

中是不會有to_ch方法的,我在下面通過extclass給datetime

插入了乙個新的方法,然後datetime

中就有了這樣乙個方法了。我這裡只是舉乙個例子而已,理論上可以給任意的方法進行擴充套件。我嘗試在wpf

中擴充套件textblack類,我要的目的是在指定時間內,使用backgroundworker自動更新內容,但是遭遇了跨執行緒

的問題。我沒找到是為什麼,所以我做了小小更改,還是乙個雞肋的功能,使用wpf

+backgroundworker+擴充套件方法

做乙個小demo,更新時間(= =|||我感覺更雞肋了)。。。

那麼擴充套件方法

我寫成了這樣:

1

public

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...