自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析C#判等函數(shù)

開發(fā) 后端
本文介紹C#判等函數(shù),.Net有四個(gè)C#判等函數(shù)?不少人看到這個(gè)標(biāo)題,會(huì)對(duì)此感到懷疑,事實(shí)上確是如此。

.Net有四個(gè)C#判等函數(shù)?不少人看到這個(gè)標(biāo)題,會(huì)對(duì)此感到懷疑,事實(shí)上確是如此,.Net提供了ReferenceEquals、靜態(tài) Equals,具體類型的Equals以及==操作符這四個(gè)C#判等函數(shù)。但是這四個(gè)函數(shù)之間有細(xì)微的關(guān)系,改變其中一個(gè)函數(shù)的實(shí)現(xiàn)會(huì)影響到其他函數(shù)的操作結(jié)果。

首先要說的是Object.ReferenceEquals和Object.Equals這兩個(gè)靜態(tài)函數(shù),對(duì)于它們倆來說,是不需要進(jìn)行重寫的,因?yàn)樗鼈円呀?jīng)完成它們所要得做的操作。對(duì)于Object.ReferenceEquals這個(gè)靜態(tài)函數(shù),函數(shù)形勢(shì)如下:

  1. public static bool ReferenceEquals( object left, object right ); 

這個(gè)函數(shù)就是判斷兩個(gè)引用類型對(duì)象是否指向同一個(gè)地址。有此說明后,就確定了它的使用范圍,即只能對(duì)于引用類型操作。那么對(duì)于任何值類型數(shù)據(jù)操作,即使是與自身的判別,都會(huì)返回false.這主要因?yàn)樵谡{(diào)用此函數(shù)的時(shí)候,值類型數(shù)據(jù)要進(jìn)行裝箱操作,也就是對(duì)于如下的形式來說。

  1. int n = 10;  
  2. Object.ReferenceEquals( n, n ); 

這是因?yàn)閷?duì)于n這個(gè)數(shù)據(jù)裝箱兩次,而每次裝箱后的地址有不同,而造成Object.ReferenceEquals( n, n )的結(jié)果永遠(yuǎn)為false.

對(duì)于***個(gè)C#判等函數(shù)來說,沒有什么好擴(kuò)展的,因?yàn)楸旧硪呀?jīng)很好地完成了它所要做的。

對(duì)于第二個(gè)Object.Equals這個(gè)靜態(tài)函數(shù),其形式如下:

  1. public static bool Equals( object left, object right ); 

按照書中對(duì)它的分析,其大致函數(shù)代碼如下:

  1. public static void Equals( object left, object right )  
  2. {  
  3. // Check object identity  
  4. if( left == right )  
  5. return true;  
  6. // both null references handled above  
  7. if( ( left == null ) || ( right == null ) )  
  8. return false;  
  9. return left.Equals( right );  

【編輯推薦】

  1. C#在應(yīng)用程序間發(fā)送消息實(shí)現(xiàn)淺析
  2. 一些C#時(shí)間類型的入門知識(shí)
  3. C#接口和抽象類技術(shù)特點(diǎn)淺析
  4. 一個(gè)C#時(shí)間計(jì)算的實(shí)例
  5. C#繼承知識(shí)詳解
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-08-10 14:43:03

C#函數(shù)Convert

2009-07-31 16:00:30

C#函數(shù)重載

2009-07-31 14:03:21

C# Format函數(shù)

2009-08-14 09:15:28

C#調(diào)用構(gòu)造函數(shù)

2009-07-31 15:44:02

C#靜態(tài)構(gòu)造函數(shù)

2009-08-13 18:15:06

C#繼承構(gòu)造函數(shù)

2009-08-13 17:38:42

C#構(gòu)造函數(shù)

2009-09-18 09:02:45

CLR Via C#

2009-08-13 18:02:11

C#靜態(tài)構(gòu)造函數(shù)

2009-08-14 09:43:59

C#復(fù)制構(gòu)造函數(shù)

2009-08-14 09:58:09

C#復(fù)制構(gòu)造函數(shù)

2009-08-13 13:42:54

C#構(gòu)造函數(shù)

2009-08-13 17:30:30

C#構(gòu)造函數(shù)

2009-08-14 17:45:52

C# ArrayLis

2009-08-17 18:34:50

C# ChangeCo

2009-08-07 17:25:37

C# SortedLi

2009-08-13 18:36:36

C#繼承構(gòu)造函數(shù)

2009-07-31 16:25:29

C#回調(diào)函數(shù)API應(yīng)用

2009-08-25 17:59:49

C#入門

2009-08-18 10:30:30

C#枚舉
點(diǎn)贊
收藏

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