C#为什么要将CultureInfo.InvariantCulture用于如此简单的任务

C#为什么要将CultureInfo.InvariantCulture用于如此简单的任务,c#,cultureinfo,C#,Cultureinfo,好的,我正在进行Saplo Api C#项目。当我看到这些代码时,我感到很困惑: public class Helper { private static int _currentId; public static int GetCurrentId() { return _currentId; } public static int GetNextId() { return ++_currentId; } }

好的,我正在进行Saplo Api C#项目。当我看到这些代码时,我感到很困惑:

public class Helper
{
    private static int _currentId;
    public static int GetCurrentId()
    {
        return _currentId;
    }
    public static int GetNextId()
    {
        return ++_currentId;
    }
}

[DataContract]
internal class RequestBase<T>
{
    public RequestBase()
    {
        ID = Helper.GetNextId().ToString(CultureInfo.InvariantCulture);
    }

    public RequestBase(string method, T @params)
        : this()
    {
        Method = method;
        Parameters = @params;
    }

    [DataMember(Name = "id")]
    public string ID { get; private set; }

    [DataMember(Name = "method")]
    public string Method { get; set; }

    [DataMember(Name = "params")]
    public T Parameters { get; set; }
}
公共类助手
{
私有静态int_currentId;
公共静态int GetCurrentId()
{
返回_currentId;
}
公共静态int GetNextId()
{
返回+++\u currentId;
}
}
[数据合同]
内部类RequestBase
{
公共请求库()
{
ID=Helper.GetNextId().ToString(CultureInfo.InvariantCulture);
}
公共RequestBase(字符串方法,T@params)
:此()
{
方法=方法;
参数=@params;
}
[数据成员(Name=“id”)]
公共字符串ID{get;private set;}
[DataMember(Name=“method”)]
公共字符串方法{get;set;}
[DataMember(Name=“params”)]
公共T参数{get;set;}
}

因此,如果您查看RequestBase的构造函数。。。。public RequestBase()!你会看到Helper.GetNextId()这只返回一个int为什么要麻烦使用CultureInfo.InvariantCulture我不明白为什么一个简单的ToString inst足以完成这项工作,或者什么,这不是更高的开销吗?

对于整数,目前还没有公认的官方文化会影响
Int32.ToString()
的行为。它将始终创建一个相同的字符串

然而,这并不意味着一种习惯文化可能不会对结果做出不同的解释。Resharper和其他代码样式工具通常建议使用区域性来保持一致性

值得注意的是,在整数之外旅行时,文化绝对会产生影响。例如,在EN-US中,逗号用于千位分隔,句点用于表示小数点。另一方面,在EN-GB中正好相反。保持值类型之间的一致性当然可以被视为一个好习惯


也就是说,在这种情况下,是的,为整数提供CultureInfo可能是不必要的“开销”,除非您更愿意在代码库中保持一致性。

在这种情况下,似乎没有必要。我知道像ReSharper和StyleCop这样的插件会抱怨(显示警告)一个空的ToString(),除非你告诉他们不要这样做。编写此代码时可能使用了其中一个插件

通常情况下,
CultureInfo。在转换日期和十进制/货币值时使用不变量culture