String.LegacyMode属性到底是用来做什么的?

5
当我反编译 String.IndexOf (String) 方法时,我看到了这个:
[__DynamicallyInvokable]
public int IndexOf(string value)
{
  return this.IndexOf(value, string.LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture);
}

在第二个参数定义中:
  • 如果 string.LegacyModetrue,则评估 StringComparison.Ordinal
  • 如果 string.LegacyModefalse,则评估 StringComparison.CurrentCulture
但是,String.LegacyMode 到底是什么意思?
当我反编译此属性时,我看到了这个:
internal static bool LegacyMode
{
  get
  {
    return CompatibilitySwitches.IsAppEarlierThanSilverlight4;
  }
}

我首先在Google上搜索了String.LegacyModeCompatibilitySwitches.IsAppEarlierThanSilverlight4,但是没有找到任何有用的信息。

你能启发我吗?


1
@Downvoter,能否至少评论一下? - Soner Gönül
1个回答

5

为什么不查看源代码,MSDN :)

Ninja编辑:我刚才看到你在问题顶部发布的链接。从其他版本下拉菜单中选择Silverlight,您将看到下面的注释。

String.IndexOf方法

调用者注意事项

从Silverlight 4开始,String.IndexOf(String)方法的行为已更改。在Silverlight 4中,它使用当前区域设置执行区分大小写和区域设置比较以查找value的第一次出现。这符合完整.NET Framework中String.IndexOf(String)方法的行为。在Silverlight 2和Silverlight 3中,String.IndexOf(String)执行序数比较。如果公共语言运行时确定基于Silverlight的应用程序是使用Silverlight 2或Silverlight 3编译的,则执行序数比较;否则,它执行区域设置比较。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接