【发布时间】:2012-09-06 22:47:21
【问题描述】:
使用以下代码:
if (lombardiTrophy.Substring(1, 1).Equals('~'))
...我明白了,“可疑的比较:解决方案中没有类型继承自 'string' 和 'char'”
有没有更好的方法来做到这一点,不会导致 Resharper 惹恼它?
【问题讨论】:
-
.Equals("~")注意双引号 -
单引号尝试字符,双引号强制字符串,如果我没记错的话。
-
但它编译得很好,1个字符的字符串是一个字符,对吧?
-
@ClayShannon 不,1 个字符的字符串仍然是
string,不同的类型。 -
@ClayShannon 它编译得很好,因为它编译为
object.Equals(object),并且由于类型不同,该方法将始终返回 false。重申一下,表达式"A".Equals('A')是假的。毫无疑问,您现在已经明白了这一点,但没有其他人明确要求注意这一事实,这就是 ReSharper 警告背后的原因。
标签: c# refactoring resharper automated-refactoring