偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C# 3.0擴(kuò)展重載抉擇

開發(fā) 后端
這里介紹C# 3.0擴(kuò)展重載抉擇,將對擴(kuò)展方法的調(diào)用也納入到重載抉擇的范疇之內(nèi),并且規(guī)定擴(kuò)展方法擁有最低的優(yōu)先級。

C# 3.0語言有很多值得學(xué)習(xí)的地方,這里我們主要介紹C# 3.0擴(kuò)展重載抉擇,包括介紹調(diào)用實(shí)例方法Func等方面。

C# 3.0擴(kuò)展重載抉擇

看了上面的介紹我們不難發(fā)現(xiàn)一個(gè)問題:如果一個(gè)類型中的某個(gè)實(shí)例方法與擴(kuò)展方法的簽名等價(jià)(這里說“等價(jià)”是因?yàn)閿U(kuò)展方法與調(diào)用形式一樣的實(shí)例方法相比,要多一個(gè)表示被擴(kuò)展類型的參數(shù),也就是***個(gè)有this修飾符的參數(shù)),那么當(dāng)在被擴(kuò)展類型的對象上調(diào)用方法時(shí),就會產(chǎn)生沖突。我們將這種沖突稱為重載抉擇問題。C# 3.0擴(kuò)展重載抉擇,將對擴(kuò)展方法的調(diào)用也納入到重載抉擇的范疇之內(nèi),并且規(guī)定擴(kuò)展方法擁有***的優(yōu)先級。也就是說,對于一組特性類型、特定順序的參數(shù)列表,只有當(dāng)被擴(kuò)展類型中沒有得以匹配的方法時(shí),才考慮從擴(kuò)展方法中選擇一個(gè)最合適的方法進(jìn)行調(diào)用。

現(xiàn)在,我們?yōu)樯厦娴腟ampleExtensions類再添加一個(gè)用于擴(kuò)展SampleClass類型的擴(kuò)展方法Func:

  1. public static void Func(this SampleClass s)  
  2. {  
  3. s.Val = -1;  
  4. Console.WriteLine("Am I appearing?");  

如果用調(diào)用實(shí)例方法的語法調(diào)用這個(gè)擴(kuò)展方法,則其調(diào)用形式與調(diào)用無參的實(shí)例方法Func完全一致。再次編譯并運(yùn)行原來的程序,輸出的結(jié)果并沒有改變,也就是說這個(gè)擴(kuò)展方法根本沒有被調(diào)用,實(shí)際被調(diào)用的方法是實(shí)例方法Func。當(dāng)然,如果將這個(gè)擴(kuò)展方法作為普通的靜態(tài)方法進(jìn)行調(diào)用是沒有問題的。

另外如果兩個(gè)靜態(tài)類中為同一個(gè)類型定義了簽名一致的靜態(tài)方法,則***定義的靜態(tài)方法具有較高的優(yōu)先級;而同一程序集中定義的靜態(tài)方法優(yōu)先級高于用using語句從其他命名空間中導(dǎo)入的擴(kuò)展方法;***,如果兩個(gè)命名空間中包含簽名一致的擴(kuò)展方法,則***引入的命名空間中的擴(kuò)展方法優(yōu)先級較高。以上介紹C# 3.0擴(kuò)展重載抉擇

【編輯推薦】

  1. C# System.Xml集合
  2. C#實(shí)現(xiàn)Strategy接口
  3. C#編寫操作TreeView組件剖析
  4. C#實(shí)現(xiàn)IDisposable接口淺析
  5. C#異常處理詳細(xì)剖析
責(zé)任編輯:佚名 來源: 搜狐IT
相關(guān)推薦

2009-08-27 16:24:48

擴(kuò)展方法C# 3.0新特性

2009-08-25 17:15:50

C#隱藏C#重寫C#重載

2009-08-19 14:42:21

C#重載LoadPos

2009-07-31 16:00:30

C#函數(shù)重載

2009-08-27 18:04:01

c#擴(kuò)展方法string

2009-08-10 17:36:17

C#擴(kuò)展方法

2009-06-12 09:41:07

EJB3.0Spring

2009-09-01 11:28:32

C#使用函數(shù)重載

2009-09-01 11:04:59

C#調(diào)用擴(kuò)展方法

2009-09-18 15:53:37

C# 3.0新語言特性

2009-08-31 14:45:10

C#擴(kuò)展方法

2009-09-04 13:18:10

C#允許運(yùn)算符重載

2009-08-12 10:27:12

C#運(yùn)算符重載運(yùn)算符重載實(shí)例

2009-08-14 10:16:57

C#運(yùn)算符重載

2009-08-12 10:56:47

C#運(yùn)算符重載C#運(yùn)算符重載實(shí)例

2009-09-02 17:08:30

C#語言開發(fā)Windo

2009-08-28 14:25:57

C# byte數(shù)組

2009-08-26 15:53:48

C#擴(kuò)展方法

2009-08-18 14:14:45

C#擴(kuò)展方法性能測試

2009-08-27 09:27:49

C#擴(kuò)展方法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號