2
ToString을 2 자리 16 진수 값으로 변환하기 위해 ToString을 호출하는 경우 어떤 식 으로든 CultureInfo.CurrentCulture 또는 CultureInfo.InvariantCulture 형식을 사용하면 문제가되지 않습니까?byte.ToString ("x2")에 IFormatProvider를 제공하는 것이 중요합니까?
예 :
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를 기본값의에 제공하는 경우는 출력의 차이를 만들 것입니다?
그것이 내가 생각한 것입니다. 그러나 나는보고있는 일부 코드에서 그것을 알아 차렸고 단지 잘못으로 보였습니다. 확인 감사합니다!! –
ToString에서 FormatProvider를 항상 * 사용 *해야하는 코딩 표준이있을 수 있습니다. 나쁘지는 않지만 가끔 과장되어 버립니다. –