c# - 使用 '==' 运算符和 string.Equals() 方法比较字符串是否存在任何全局化问题?

标签 c# .net vb.net

使用 '==' 运算符和 string.Equals() 方法比较字符串是否存在任何全局化问题?如果是,避免这种情况的解决方案是什么?

最佳答案

通过 String.Equals,您可以使用 StringComparison.InvariantCultureIgnoreCaseStringComparison.InvariantCulture,使用 == 你不能这样做。

您应该看到:The Turkish İ Problem and Why You Should Care

来自同一篇文章的代码片段:

using System;
using System.Globalization;
using System.Threading;
internal class Program
{
    private static void Main(string[] args)
    {      
        Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR");
        const string input = "interesting";

        bool comparison = input.ToUpper() == "INTERESTING";

        Console.WriteLine("These things are equal: " + comparison);
        Console.ReadLine();
    }
}

以上将返回一个 false 用于使用 == 运算符的相等比较

你可以试试上面代码中的下面一行

 bool Comparison2 = input.Equals("INTERESTING",
                                  StringComparison.InvariantCultureIgnoreCase);

结果将是true

关于c# - 使用 '==' 运算符和 string.Equals() 方法比较字符串是否存在任何全局化问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13264057/

相关文章:

c# - 如何正确删除存储文件?

c# - 在什么情况下我不应该在类中使用静态成员?

Vista 上的 VB.NET,尝试获取日期(今天)导致安全异常

c# - System.Collections.NonGeneric 在超过 1.3 的 NetStandard 库中缺失

c# - WPF 调试证书无法访问私钥

c# - 当我要求 dotMemory 强制垃圾收集时究竟会发生什么

c# - 用于 Java 或 C# 或 vb.net 的 Sip/VoIP 库

asp.net - 如何覆盖错误页面的页面渲染?

c# - 如何使 Xamarin 应用全屏(全屏)

.net - 如何使用 .NET 显示 VRML 模型?