什麼是擴充方法(Extension Method)呢?
簡單的說就是可以讓你自已擴充用的東西(有說跟沒說一樣…..)
不用把擴充方法想的太難,它其實也是很平易近人的
在寫程式的時候,在字串的後面點(.)下去,會跑出一堆方法讓你使用,最常見的就是ToString()
那麼我們要如何自行設計一個屬於自己的方法呢(結果如下圖)?其實不難
下程的範例程式(專案打包點我下載),研究一下應該就可以懂了
首先撰寫要自訂擴充的方法 ModuleExt.vb
這邊需要注意的地方,在於傳入的參數型態
如果傳入的參數型態是Integer,那麼只有型態是Integer的點下去才會出這個自訂的Method
如果想要任何型態點下去,都會帶出現我們自定的Method,
那麼就把型態定為Object就可以了(如本例的AddString)
Imports System.Runtime.CompilerServices Namespace ExtensionMethods Module OtherExtensions ''' ''' 英文字首轉大寫 ''' <Extension()> _ Public Function ToUpperFirstWord(ByVal src As String) As String If src.Length >= 1 Then Dim FirstWord As String = src.Substring(0, 1).ToUpper src = src.Remove(0, 1).Insert(0, FirstWord) End If Return src End Function <Extension()> _ Public Function ToPerCent(ByVal src As Double) As String Return src * 100 & "%" End Function <Extension()> _ Public Function AddString(ByVal src As Object) As String Return src & " New AddString" End Function End Module End Namespace
接下來則是在要使用的程式頁面引用之前所寫的Extension
Imports ConsoleApplicationTEST.ExtensionMethods.OtherExtensions Module Module1 Sub Main() Dim test As String = "abcd" 'Output: Abcd Console.WriteLine(test.ToUpperFirstWord) 'Output: abcd New AddString Console.WriteLine(test.AddString) 'Output: Abcd New AddString Console.WriteLine(test.ToUpperFirstWord.AddString) 'Output: 50% Dim testint As Double = 0.5 Console.WriteLine(testint.ToPerCent) Console.ReadLine() End Sub End Module
相關文章:
何謂擴充方法 (Extension method )?
C# 3.0 初體驗:Extension Method
[C#] 3.0 中的新功能 – 擴充方法(Extension Method)