假設我有以下的,完全沒有意義的代碼:如何在.NET中比較兩個相等的方塊數?
object val1 = 1;
object val2 = 1l;
下面將返回false,因爲兩個盒裝對象是不一樣的,因爲他們的對象有不同的類型:
val1 == val2
這同樣適用於:
val1.Equals(val2)
或者:
Object.Equals(val1, val2)
什麼是用同樣的方法來比較這些的下面會,考慮到我不知道類型在運行時(因此不能投)最簡單的方法:
1 == 1l;
在換句話說,我如何得到一個值基於兩個盒裝數字比較?
不確定我明白。無論你如何編寫表達式,爲什麼1 == 11都會返回true? – JohnFx 2010-11-17 17:36:39
它是(int)1 ==(long)1。他至少使用了一個L,而不是額外的1 – used2could 2010-11-17 17:38:44
,至少他們是否總是會成爲某種形式的數字? (數字作爲標籤) – used2could 2010-11-17 17:41:17