什麼是擴充方法(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)
