我有获取字符串作为输入的代码,并将其与整数进行比较。
我看到整数变量也有一个Equals
函数,该函数接受字符串参数。
我直接使用它,以为它将进行类型转换。
它没有给出任何编译时或运行时错误,但始终给出错误的结果。
例如,
int sessionId = 1;
string requestId="1"
return sessionId.Equals(requestId);
sessionId.Equals(requestId)
始终为假。为什么会有这种行为的原因?如果有原因,为什么他们允许它正常运行?
最佳答案
整数和字符串始终不同,因此"1".Equals(1)
返回false。
之所以进行编译,是因为object.Equals(object other)
将object
作为右侧,因此可以接受任何类型。
关于c# - 为什么当integer.equals(string)包含相同的值但不抛出类型不匹配异常时,它们给出false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13493047/