String.LegacyMode 属性到底是什么

本文关键字:是什么 属性 LegacyMode String | 更新日期: 2023-09-27 18:36:19

当我反编译String.IndexOf (String)方法时,我看到这个;

[__DynamicallyInvokable]
public int IndexOf(string value)
{
  return this.IndexOf(value, string.LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture);
}

在第二个参数定义中:

  • 如果string.LegacyMode true,则StringComparison.Ordinal被计算。
  • 如果string.LegacyMode false,则计算StringComparison.CurrentCulture

String.LegacyMode到底是什么意思呢?

当我反编译此属性时,我看到以下内容:

internal static bool LegacyMode
{
  get
  {
    return CompatibilitySwitches.IsAppEarlierThanSilverlight4;
  }
}

我首先在Google上搜索了String.LegacyMode和Compatibility Switch.IsAppEarlyThanSilverlight4,但我找不到任何有用的信息。

你能开导我吗?

String.LegacyMode 属性到底是什么

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

忍者编辑:我刚刚看到了您在问题顶部发布的链接。从其他版本下拉列表中选择 Silverlight,您将看到下面的注释。

String.IndexOf Method

来电者注意事项

从 Silverlight 4 开始,String.IndexOf(String) 方法的行为发生了变化。在 Silverlight 4 中,它使用当前区域性执行区分大小写和区分区域性的比较,以查找第一个出现的值。这符合完整 .NET Framework 中 String.IndexOf(String) 方法的行为。在 Silverlight 2 和 Silverlight 3 中,String.IndexOf(String) 执行序号比较。如果公共语言运行库确定基于 Silverlight 的应用程序是使用 Silverlight 2 或 Silverlight 3 编译的,则执行序号比较;否则,它将执行区分区域性的比较。