c# 擴展方法


1.定義:

(1)擴展方法能使你能夠向現有類型添加“添加”方法,而無需創建新的派生類型,重新編譯或以其他方式修改原始類型。

(2)擴展方法是一種特殊的靜態方法,但可以像擴展類型上的實例方法一樣調用。

注:

(1)擴展方法的第一個參數指定該方法作用於那個類型,並且此參數用this為前綴修飾。僅當你使用using指令將命名空間顯示導入到源碼之中后,擴展方法才位於范圍中。

(2)在代碼中,可以使用實例方法語法調用改擴展方法,但是,編譯器生成的中間語言(IL)會將代碼轉換為對靜態方法的調用。因此,並未真正 違反封裝原則,實際上,擴展方法無法訪問到他們所擴展類型中的私有變量。

(3)不能重寫擴展方法

(4)與接口或者類具有相同名稱和簽名的擴展方法永遠不會被調用(編譯時優先級:實例方法 > 擴展方法)

        (方法簽名:c#中指返回值和參數)

 

2. 簡單代碼示例:

步驟一:定義擴展方法,namespace為PipelineExtensions

namespace PipelineExtensions
{
    public static class StringExtensions
    {
        // 擴展方法---計算字符串長度
        public static int WordCount(this string str)
        {
            return str.Length;
        }
    }
}

步驟二:使用此擴展方法

(1)先通過using把namespace引入到使用文件中

(2)使用擴展方法 WordCount(this string str)中的第一個參數類型string為類型的參數調用此擴展方法

using PipelineExtensions;
using System;
namespace Pipeline
{
    public class Program
    {
        public static void Main(string[] args)
        {
            string ex = "yx123456";
            int count = ex.WordCount();
            Console.WriteLine(count);
            Console.ReadKey();
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM