【发布时间】:2011-03-07 14:32:52
【问题描述】:
类似这样的真实情况让我们大吃一惊:
"FooBar".StartsWith(string.Empty)
首先,我认为这不应该是真的,但我也不太确定为什么它是真的,查看“Reflector'ed”代码:
public bool StartsWith(string value, bool ignoreCase, CultureInfo culture)
{
if (value == null)
{
throw new ArgumentNullException("value");
}
if (this == value)
{
return true;
}
CultureInfo info = (culture == null) ? CultureInfo.CurrentCulture : culture;
return info.CompareInfo.IsPrefix(this, value, ignoreCase ? CompareOptions.IgnoreCase : CompareOptions.None);
}
ignoreCase 为假,文化为空。那么为什么“this == value”的计算结果为 true?
【问题讨论】:
-
是的,我刚刚发现了这个问题,谢谢。