[ASP.NET] C#和VB 的Extension Method

摘要:[ASP.NET] C#和VB 的Extension Method

最近比較多的時間是在寫C#,可是有時還是要寫一些VB的案子,

有些東西容易忘掉,便成要去翻一下以前寫的,像Extension Method就是,所以直接記在Blog上比較方便,

Extension Method對我來說是還蠻常用的,常把一些小的常用的Method寫成這樣的方式來用,

像.NET會常常用到.ToString()或是.Trim()之類的Method,

兩者在結構上也有所不同,

C# 的部分:

public static class MyExtensionForC
{
    public static string MyName(this string str)
    {
        if (str == string.Empty)
        {
            return "Leo";
        }
        else {
            return str;
        }
    }
}

 

VB的部分會有一點點冗長,要Imports System.Runtime.CompilerServices,

Imports System.Runtime.CompilerServices

Public Module MyExtensionForVB
     _
    Public Function MyName(ByVal str As String) As String
        If str = String.Empty Then
            Return "Leo"
        Else
            Return str
        End If
    End Function
End Module</EXTENSION()>

 

以上就是兩者在Extension上的寫法,接下來就看看如何應用

我們開個檔案在Behind Code寫簡單的測試

C#的部分:

protected void Page_Load(object sender, EventArgs e)
    {
        string ThisMyName = string.Empty ;
        //ThisMyName = "Lin";
        this.Response.Write(ThisMyName.MyName().ToString());
    }

VB的部分:

 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim ThisName As String
        'ThisName = "Lin"
        My.Response.Write(ThisName.MyName)
End Sub

以上的部分就是當你不給ThisName這個變數任何值時,在Extension就會直接帶Leo給他,

若有給它任何的資料時,則會帶出所給的資料,以上就是簡單的Extension Method應用

End…