我相信每个人都遇到过喜欢使用ToString()
方法的开发者。我们都可能看到过类似以下代码:
public static bool CompareIfAnyMatchesOrHasEmpty(List<string> list1, List<string> list2)
{
bool result = false;
foreach (string item1 in list1)
{
foreach (string item2 in list2)
{
if (item1.ToString() == item2.ToString())
{
result = true;
}
if (item1.ToString() == "")
{
result = true;
}
}
}
return result;
}
我想知道编译器是否可以优化
ToString()
方法(无格式的空方法)? 我的假设是不行的,因为它最初定义在object
上。 因此,我提出了第二个问题,是否值得清理这样的实例?
"string constant".ToString()
的用法,甚至将Decimal格式化为货币字符串,然后尝试将其解析为int,再次调用ToString(),并且被诚实地问到为什么会引发异常。此外,我认为在每个字符串上随意使用.ToString()
将“允许”您获得更多的NullReferenceException
... - Mike Guthrie