为byte.ToString(“x2”)提供IFormatProvider是否重要?

时间:2010-04-15 22:22:44

标签: c# hex byte

如果您在一个字节上调用ToString将其转换为2位十六进制值,那么以任何方式使用CultureInfo.CurrentCulture或CultureInfo.InvariantCulture的格式提供是否重要?

示例:

public string CalculateMD5Hash(string input)
{
    MD5 md5 = System.Security.Cryptography.MD5.Create();
    byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
    byte[] hash = md5.ComputeHash(inputBytes);

    StringBuilder sb = new StringBuilder();
    foreach (byte b in hash)
    {
        sb.Append(b.ToString("x2",CultureInfo.InvariantCulture));
    }
    return sb.ToString();
}

基本上我可以省略IFormatProvider并始终得到相同的结果,或者如果我提供CultureInfo默认值,它会对输出产生影响吗?

1 个答案:

答案 0 :(得分:3)

也许,在遥远的未来,我们将对Hex值具有文化依赖性符号。但是今天没有。您可以安全地省略FormatProvider。