代码之家  ›  专栏  ›  技术社区  ›  Damien

.Net区域性不敏感比较-需要时的示例

  •  0
  • Damien  · 技术社区  · 16 年前

    尽管你叫我傻瓜,但我发现很难看出我可以在哪里使用它是实践,例如,为什么你会有两个不同的日期时间,在同一个代码中,他们是不同的文化?唯一的方法是手动重写其中一个数据类型区域性,为什么要这样做?

    在现实世界中应用文化不敏感比较的例子有吗?

    干杯

    3 回复  |  直到 7 年前
        1
  •  4
  •   Mehrdad Afshari    16 年前

    您可能希望将用户输入(可以在不同的区域性中)与代码中设置的引用字符串进行比较。

    文化不变性比较的经典用例之一是 Turkish-I problem . http:// , ftp:// ,或 file:// . 如果你写:

    inputUrl.StartsWith("FILE://", StringComparison.CurrentCultureIgnoreCase)
    

    file://test CurrentCulture )但是如果文化设置为土耳其语,测试将失败,因为 文件:// FİLE:// 用土耳其语字母。

    在这些情况下,我们希望使用不变区域性匹配字符串:

    inputUrl.StartsWith("FILE://", StringComparison.InvariantCultureIgnoreCase)
    

    一般来说,当您希望对程序中具有特定语义(它表示URL、资源键等)的输入数据执行比较时,而不是简单地用于显示或存储和检索,您应该考虑使用 InvariantCulture .

        2
  •  1
  •   to StackOverflow    16 年前

    例如,为什么在同一个代码中有两个不同的日期时间,它们是不同的文化?

    一种方法是在某处(文件、注册表)持久化DateTime值。如果具有不同区域性的两个用户访问同一个文件/注册表项,则您希望它的格式独立于其区域性。

        3
  •  0
  •   tsinik    16 年前

    想想一个本地化的网站。 在美国,日期约定为mm/dd/yyyy,在欧洲,日期约定为dd/mm/yyyy。

    推荐文章