假设我有以下的,完全没有意义的代码:如何在.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