擴展其實真的很簡單this
msdn是這樣規定擴展方法的:「擴展方法被定義爲靜態方法,但它們是經過實例方法語法進行調用的。 它們的第一個參數指定該方法做用於哪一個類型,而且該參數以 this 修飾符爲前綴。」orm
擴展方法的關鍵不在於定義所在的class的名字,關鍵在於擴展方法的第一個參數,以及全部class和擴展方法是否爲static。blog
擴展方法的第一個參數指定這個擴展方法做用在的class。作用域
好比個人例子中爲string添加一個擴展方法 (ToIntExt), 因此第一個方法必須是string類型,而且要加上this修飾符爲前綴。get
完成了這些工做,你在StringExtension的做用域裏任何string類型的實例均可以訪問這個擴展方法(如上圖)。string
擴展方法還能夠添加參數,想要實現只需在第一個參數(this前綴)後面繼續添加你須要的參數。以下,我想給個人ToIntExt擴展方法加一個format:it