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

淺析C#判等函數

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

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

首先要說的是Object.ReferenceEquals和Object.Equals這兩個靜態(tài)函數,對于它們倆來說,是不需要進行重寫的,因為它們已經完成它們所要得做的操作。對于Object.ReferenceEquals這個靜態(tài)函數,函數形勢如下:

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

這個函數就是判斷兩個引用類型對象是否指向同一個地址。有此說明后,就確定了它的使用范圍,即只能對于引用類型操作。那么對于任何值類型數據操作,即使是與自身的判別,都會返回false.這主要因為在調用此函數的時候,值類型數據要進行裝箱操作,也就是對于如下的形式來說。

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

這是因為對于n這個數據裝箱兩次,而每次裝箱后的地址有不同,而造成Object.ReferenceEquals( n, n )的結果永遠為false.

對于***個C#判等函數來說,沒有什么好擴展的,因為本身已經很好地完成了它所要做的。

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

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

按照書中對它的分析,其大致函數代碼如下:

  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#在應用程序間發(fā)送消息實現淺析
  2. 一些C#時間類型的入門知識
  3. C#接口和抽象類技術特點淺析
  4. 一個C#時間計算的實例
  5. C#繼承知識詳解
責任編輯:佚名 來源: IT168
相關推薦

2009-08-10 14:43:03

C#函數Convert

2009-07-31 16:00:30

C#函數重載

2009-07-31 14:03:21

C# Format函數

2009-07-31 15:44:02

C#靜態(tài)構造函數

2009-08-14 09:15:28

C#調用構造函數

2009-08-13 17:38:42

C#構造函數

2009-08-13 18:15:06

C#繼承構造函數

2009-08-13 18:02:11

C#靜態(tài)構造函數

2009-09-18 09:02:45

CLR Via C#

2009-08-14 09:43:59

C#復制構造函數

2009-08-14 09:58:09

C#復制構造函數

2009-08-13 13:42:54

C#構造函數

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 17:30:30

C#構造函數

2009-08-25 17:59:49

C#入門

2009-08-13 18:36:36

C#繼承構造函數

2009-07-31 16:25:29

C#回調函數API應用

2009-08-21 15:57:58

C# DataSour
點贊
收藏

51CTO技術棧公眾號