成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C# 3.0新特性:擴展方法

開發 后端
本文介紹了c# 3.0新特性中如何使用擴展方法,并且列出了定義擴展方法的代碼,希望對大家有用。

Extension Methods 使用擴展方法,使用的時候需要注意的地方

1.C# 3.0新特性中擴展方法所屬的類必須為靜態非泛型類,擴展方法也是靜態方法

2.***個參數為被擴展的類型實例,并且必須用this進行修飾

3.第二個參數開始對對應被擴展類型實例所傳遞的參數列表,即擴展類型實例

傳遞的***個參數對應擴展方法定義的第二個參數,依次類推

4.C# 3.0新特性中被擴展類型實例可像調用類型內部定義的實例方法一樣調用擴展方法

這里定義一個擴展方法:

  1. public static class Extensions  
  2.     {  
  3.         public static bool Compare(this Customer customer1, Customer customer2)  
  4.         {  
  5.             if (customer1.CustomerId == customer2.CustomerId &&  
  6.                 customer1.Name == customer2.Name &&  
  7.                 customer1.City == customer2.City)  
  8.             {  
  9.                 return true;  
  10.             }  
  11.  
  12.             return false;  
  13.         }  
  14.  
  15.     } 

其中Compare***個參數用this修飾

完整源碼例子,這個例子主要查詢新建的newCustomer是否在列表List中

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5.  
  6. namespace NewLanguageFeatures  
  7. {  
  8.     public class Customer  
  9.     {  
  10.         public int CustomerId { getprivate set; }  
  11.  
  12.         public string Name { getset; }  
  13.         public string City { getset; }  
  14.  
  15.         public Customer(int Id)  
  16.         {  
  17.             CustomerId = Id;  
  18.         }  
  19.  
  20.         public override string ToString()  
  21.         {  
  22.             return Name + “\t” + City + “\t” + CustomerId;  
  23.         }  
  24.     }  
  25.     public static class Extensions  
  26.     {  
  27.         public static bool Compare(this Customer customer1, Customer customer2)  
  28.         {  
  29.             if (customer1.CustomerId == customer2.CustomerId &&  
  30.                 customer1.Name == customer2.Name &&  
  31.                 customer1.City == customer2.City)  
  32.             {  
  33.                 return true;  
  34.             }  
  35.  
  36.             return false;  
  37.         }  
  38.  
  39.     }  
  40.  
  41.     class Program  
  42.     {  
  43.         static void Main(string[] args)  
  44.         {  
  45.             var customers = CreateCustomers();  
  46.  
  47.             var newCustomer = new Customer(10)  
  48.             {  
  49.                 Name = “Stuart Glasson”,  
  50.                 City = “Oxford”  
  51.             };  
  52.  
  53.             foreach (var c in customers)  
  54.             {  
  55.       
  56.                 if (newCustomer.Compare(c))  
  57.                 {  
  58.                     Console.WriteLine(”The new customer was already in the list”);  
  59.                     return;  
  60.                 }  
  61.  
  62.             }  
  63.  
  64.             Console.WriteLine(”The new customer was not in the list”);  
  65.  
  66.         }  
  67.  
  68.         static List< Customer> CreateCustomers()  
  69.         {  
  70.             return new List< Customer>  
  71.                 {  
  72.                     new Customer(1) { Name = “Alex Roland”,             City = “Berlin”    },  
  73.                     new Customer(2) { Name = “Oliver Cox”,              City = “Marseille” },  
  74.                     new Customer(3) { Name = “Maurice Taylor”,          City = “London”    },  
  75.                     new Customer(4) { Name = “Phil Gibbins”,            City = “London”    },  
  76.                     new Customer(5) { Name = “Tony Madigan”,            City = “Torino”    },  
  77.                     new Customer(6) { Name = “Elizabeth A. Andersen”,   City = “Portland”  },  
  78.                     new Customer(7) { Name = “Justin Thorp”,            City = “London”    },  
  79.                     new Customer(8) { Name = “Bryn Paul Dunton”,        City = “Portland”  }  
  80.                 };  
  81.         }  
  82.     } 

C# 3.0新特性中的擴展方法就介紹到這里,希望對大家有用。

【編輯推薦】

  1. C#語言讀書心得備忘
  2. 詳解C#制做Active控件的五個步驟
  3. 總結C#多線程的點點滴滴
  4. 學習C#多線程:lock的用法
  5. 各種C#數組的定義和初始化
責任編輯:book05 來源: ajaxcn
相關推薦

2009-08-31 14:45:07

Visual C# 3

2009-09-01 11:19:47

C# 3.0擴展重載抉

2009-09-18 15:53:37

C# 3.0新語言特性

2009-08-24 18:01:45

C#3.0新特性

2009-08-26 17:10:09

C# 3.5新特性

2009-08-10 17:36:17

C#擴展方法

2009-08-27 18:04:01

c#擴展方法string

2009-08-19 16:51:14

C# 4.0 dyna

2009-09-01 11:04:59

C#調用擴展方法

2009-08-24 17:55:44

C#3.0新特性

2009-05-26 09:28:22

C# 4.0dynamic動態類型

2009-08-31 14:45:10

C#擴展方法

2016-10-13 13:33:41

反射特性c#

2009-07-27 09:46:28

Silverlight

2011-07-27 16:12:35

Linux KerneLinux內核

2009-08-13 09:46:49

C#歷史C# 4.0新特性

2009-08-26 15:53:48

C#擴展方法

2009-08-18 14:14:45

C#擴展方法性能測試

2009-08-27 09:27:49

C#擴展方法

2009-05-25 15:42:03

Visual StudC#
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕91av | 久久国产精品偷 | 亚洲免费观看视频网站 | 久久久这里只有17精品 | 久久精品国产久精国产 | 国产精品成人品 | 综合色站导航 | 99热热| 久久久久久国产精品 | 99久久免费精品国产男女高不卡 | 国产乡下妇女做爰 | 日韩视频在线一区 | 毛片a级| 国产成人精品区一区二区不卡 | 亚洲精品久久久久久国产精华液 | 欧美一区二区三区,视频 | 日韩一级一区 | 在线一区视频 | 亚洲免费av一区 | 亚洲成人久久久 | 国产乱码精品一区二区三区中文 | 亚洲一二视频 | 国产亚洲一区二区三区在线 | 久久久久久久久久久一区二区 | 中文字幕一区在线观看视频 | 欧美一区二区三区大片 | 超碰人人在线 | 91社影院在线观看 | 偷拍自拍第一页 | 夜夜爽99久久国产综合精品女不卡 | 人人爱干| 麻豆精品一区二区三区在线观看 | 国产免费一区二区 | 在线观看特色大片免费网站 | 黄色一级大片在线免费看产 | 一区二区日韩精品 | 国产亚洲精品精品国产亚洲综合 | 国产清纯白嫩初高生在线播放视频 | 在线一区二区三区 | 久久精品免费 | 亚洲一二三区在线观看 |