.NET新特性“擴充方法”

來源:互聯網
上載者:User

.NET 3.0/3.5 新特性,擴充方法。可以在已知類上建立新的靜態方法,使用起來非常方便。以前如果要在已知類上實現新方法無外乎兩種方式:1.擁有源碼自主權,對類進行版本更新。2.繼承現有類,添加實現新的方法。現在有了擴充方法,讓這一切變的更方便。

最好的例子就是LINQ使用了擴充方法在System.Collections.IEnumerable類中植入了新的查詢方法,如orderby等。這些擴充方法寫在了SysTem.Linq命名空間類中,這就是要對List執行List.Where()等方法要引入System.Linq的原因,因為Where()是在System.Linq中實現的擴充方法,並不是在對List類的重寫或是繼承了。

下面興個例子寫一個擴充方法,其實非常簡單。

public static class Exp

{

     public static string ToExp(this string str)

     {

           return "這是擴充方法返回的:"+str;

     }

}

這樣,就對string 加入了擴充方法"ToExp",在需要擴充方法的時候引用擴充方法的命名空間就OK了。比如:

string str="您好!";

str.ToExp();//這句就就執行了擴充方法。

 

有人可能會說,繼承不好嗎?為什麼非要擴充方法。。我只能說各有各的優點和缺點吧,比如密封類您怎麼樣繼承?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.