在c#中判斷物件相等,這是對引用型別進行判斷,而不是對值型別,如果是對字串,或者是數值進行判斷相等只需要用==運算子就可以了。
對兩個物件用==運算子,只能判斷他們兩個在記憶體中的位址是否一樣的。
1.對乙個類只例項化一次
向那些賦值來賦值去的引用如果沒有new例項化乙個物件的話,那麼這些賦值來,賦值去的物件指向的都是同一位址。舉乙個例子有乙個類people
people p1=new people();像這樣物件p1 ,p2,p3 ,是完全指向的同一的記憶體位址,他們實際上是同乙個物件,所有用==或者用equal方法判斷都是返回true;people p2=p1;
people p3;
p3=p2;
2、對乙個類例項化多次但是每次例項的初值都是一樣的
申明兩個物件,每個物件都例項化一次,並且把每個類的資料即欄位或者屬性都是設定統一初始值,如下:12
345people p1=
new
people();
p1.name=
"haha"
;
people p2 =
new
people();
p2.name=
"haha"
;
假設people類是有乙個屬性就是name,那麼我將這p1,p2兩個物件都例項化了,但是把用p1==p2得到的卻是false,這就更加印證了物件用==運算子,只能是對物件名的引用位址進行比較,像這種,兩次例項化,那麼在記憶體空間中就分配了不一樣的空間,即不同的位址,雖然他們內容中中的資料是一樣。
我們都知道如果兩者的記憶體的位址都相等了,那麼兩個物件實質上是同乙個物件,只是這兩個物件在程式中擁有不同的名字而已,如果想比較不同物件是否相等(不是指位址相等)。就應該重寫object物件的equal方法,在裡面具體判斷兩個物件的各個資料是否相等,如果相等返回true,只要有一項不相等則返回false。具體例項就不演示了。
如果有說的不對的,或者不好的地方,希望各位能夠指正。
c 如何判斷兩個物件是否相等
在c 中判斷物件相等,這是對引用型別進行判斷,而不是對值型別,如果是對字串,或者是數值進行判斷相等只需要用 運算子就可以了。對兩個物件用 運算子,只能判斷他們兩個在記憶體中的位址是否一樣的。1.對乙個類只例項化一次 向那些賦值來賦值去的引用如果沒有new例項化乙個物件的話,那麼這些賦值來,賦值去的物...
C 判斷兩個物件是否相等
首先在c 中判斷物件相等,是對於引用型別的,兩個 物件用 只是判斷他們的記憶體位址是否一樣 對於字串或者數值,判斷相等只需要用 運算 引用型別 1.對乙個類只是例項化一次 向那些只有賦值沒有new例項化乙個物件的話,拿這些物件指的都是乙個位址 people p1 newpeople people p...
js 判斷兩個物件是否相等
判斷兩個物件是否相等 isobjectvalueequal function a,b var aprops object.getownpropertynames a var bprops object.getownpropertynames b if aprops.length bprops.len...