?? 對等性和唯一性.txt
字號:
對象的等值性(Equals)與唯一性(ReferenceEquals)
System.Object 類型提供了一個名為Equals的虛方法,
目的是判斷兩個對象(實例)是否有相同的值。
策略為:
如果進行比較的兩個引用指向的是同一個對象,返回true,否則返回false.
在自定義的類型中重寫Equals方法的規則:
1.自反的。
2.對稱的。
3.可傳遞的。
4.前后一致的。
實現Equals的三種方式
1.為基類沒有重寫Ojbect.Equals方法的引用類型實現Equals.
2.為基類已經重寫Ojbect.Equals方法的引用類型實現Equals.
3.為值類型實現Equals方法。
唯一性判斷
判斷兩個引用是否指向同一個對象。
using System;
class RefType{public Int32 x;}//引用類型(因為'class'修飾符)
struct ValType{public Int32 x;}//值類型(因為'struct'修飾符)
class Hello
{
static void Main()
{
RefType r1=new RefType();
RefType r2=r1;
Console.WriteLine(object.ReferenceEquals(r1,r2));//True
r2=new RefType();
Console.WriteLine(object.ReferenceEquals(r1,r2));//False
Int32 x=5;
Console.WriteLine(object.ReferenceEquals(x,x));//x被兩次裝箱到不同的地方了,False
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -