生活随笔
收集整理的這篇文章主要介紹了
C# 3.0新特性之扩展方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
C#3.0擴展方法是給現(xiàn)有類型添加一個方法。現(xiàn)在類型既可是基本數(shù)據(jù)類型(如int,String等),也可以是自己定義的類。
//Demo--1 //擴展基本類型 namespace TestExtensionMethods { // 必須建一個靜態(tài)類,用來包含要添加的擴展方法 public static class Extensions { //要添加的擴展方法必須為一個靜態(tài)方法 //此方法參數(shù)列表必須以this開始 第二個即為要擴展的數(shù)據(jù)類型,在這里就是要擴展string類型 //第三個就無所謂了,就是一對象名,名字隨便,符合命名規(guī)則即可 //綜合來講,此方法就是要給string類型添加一個叫TestMethod的方法, 此方法返回一個int型的值,即返回調(diào)用此方法對象的長度。 public static int TestMethod(this string s) { return s.Length; } } //測試擴展方法類 class Program { static void Main(string[] args) { string str = "Hello Extension Methods"; //調(diào)用擴展方法,必須用對象來調(diào)用 int len = str.TestMethod(); Console.WriteLine(len); } } } //Demo--2 //擴展自定義類型,同時展示了擴展方法帶參數(shù)情況,以及方法重載 namespace TestExtendMethod { public class Student { public string Description() { return "Student............."; } public string Description(string name) { return "the student’s name is "+name; } } // 必須建一個靜態(tài)類,用來包含要添加的擴展方法 public static class Extensions { //要添加的擴展方法必須為一個靜態(tài)方法 //此方法參數(shù)列表必須以this開始 第二個即為要擴展的數(shù)據(jù)類型,在這里就是要擴展Student類型 //第三個就無所謂了,就是一對象名,名字隨便,符合命名規(guī)則即可 //綜合來講,此方法就是要給Student類型添加一個叫TestMethod的方法,此方法返回一個string型的值 public static string TestMethod(this Student s) { return s.Description(); } //要添加的擴展方法必須為一個靜態(tài)方法 //此方法參數(shù)列表第一個參數(shù)表示要擴展哪一個類,第二個參數(shù)才表示此擴展方法的真正參數(shù) //綜合來講,此方法就是要給Student類型添加一個叫TestMethod的方法, 此方法帶有一個string類型的參數(shù),并返回一個string型的值 public static string TestMethod(this Student s,string name) { return s.Description(name); } } //測試擴展方法類 class Program { static void Main(string[] args) { Student stu = new Student(); //調(diào)用擴展方法,必須用對象來調(diào)用 string mes = stu.TestMethod(); Console.WriteLine(mes); //調(diào)用帶參數(shù)的擴展方法,只要傳第二個參數(shù)就可以了 //因為他的第一個參數(shù)其實只是為了表明是擴展哪個數(shù)據(jù)類型 mes = stu.TestMethod("李沉舟"); Console.WriteLine(mes); } } } |
總結(jié):
1、擴展方法是給現(xiàn)有類型添加一個方法;
2、擴展方法是通過 指定關鍵字this修飾方法的第一個參數(shù);
3、擴展方法必須聲明在靜態(tài)類中;
4、擴展方法要通用對象來調(diào)用;
5、擴展方法可以帶參數(shù)。
轉(zhuǎn)載于:https://www.cnblogs.com/wpf123/archive/2011/04/01/2052896.html
總結(jié)
以上是生活随笔為你收集整理的C# 3.0新特性之扩展方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。