답변:
변하지 않는 문화는 변하지 않기 때문에 유용한 특별한 문화입니다. 현재 문화권은 한 사용자에서 다른 사용자로, 또는 한 실행에서 다른 실행으로 변경 될 수 있으므로 동일하게 유지 될 수는 없습니다.
매번 동일한 문화권을 사용할 수있는 것은 직렬화와 같은 여러 흐름에서 매우 중요합니다. 한 문화권에서는 1,1 값을, 다른 문화권에서는 1.1을 가질 수 있습니다. 두 번째 문화권에서 "1,1"값을 구문 분석하려고하면 구문 분석이 실패합니다. 그러나 고정 문화권을 사용하여 숫자를 문자열로 변환 한 다음 문화권이 설정된 모든 컴퓨터에서 다시 구문 분석 할 수 있습니다.
// Use some non-invariant culture.
CultureInfo nonInvariantCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = nonInvariantCulture;
decimal dec = 1.1m;
string convertedToString = dec.ToString();
// Simulate another culture being used,
// following code can run on another computer.
nonInvariantCulture.NumberFormat.NumberDecimalSeparator = ",";
decimal parsedDec;
try
{
// This fails because value cannot be parsed.
parsedDec = decimal.Parse(convertedToString);
}
catch (FormatException)
{
}
// However you always can use Invariant culture:
convertedToString = dec.ToString(CultureInfo.InvariantCulture);
// This will always work because you serialized with the same culture.
parsedDec = decimal.Parse(convertedToString, CultureInfo.InvariantCulture);
System.Globalization
네임 스페이스에 있습니다.
CultureInfo.InvariantCulture
동일한 문화권으로 직렬화 하여 사용하는 경우 작동하는 경우 .... 사용하는 것과 동일하지 CultureInfo.CurrentCulture
않습니까?
CultureInfo.InvariantCulture
항상 10 진수로 다시 구문 분석 할 수 있음을 알고 있습니다 CultureInfo.InvariantCulture
. CultureInfo.CurrentCulture
직렬화에 사용 하는 경우 사용자는 현재 문화권으로 "en-US"를 가질 수 있습니다. 10 진수로 다시 구문 분석하는 다음 사용자에게는 구분 기호로 ","를 사용하는 현재 문화권이있을 수 있습니다.
정의 된 행동으로 영어를 기반으로 한 가짜 문화. 예를 들어 구성 파일에 내용을 작성하여 사용자가 정의한 문화권에 관계없이 읽고 쓸 수 있습니다.
기본적으로 그것은 인공적인 문화이며 변하지 않을 것 입니다.
문화에 관계없이 동일한 물건에 사용됩니다 (적절한 문화 X로 변환 할 필요가 없음)
예를 들어 https://msdn.microsoft.com/en-us/library/4c5zdc6a(v=vs.100).aspx 입니다. 사용자가 엉망이되어서는 안되는 앱 특정 파일을 작성할 때 culture 매개 변수를 사용하는 모든 메서드에 InvariantCulture를 사용해야합니다.
위에 링크 된 문서에 따라 :
그러나 응용 프로그램은 파일에 지속되는 데이터의 형식화 및 구문 분석과 같이 문화 독립적 인 결과가 필요한 프로세스에만 불변 문화를 사용해야합니다.
불변 배양은 문화에 무감각하다; 영어와 관련이 있지만 국가 / 지역과는 관련이 없습니다.
CultureInfo.InvariantCulture는 고정 문화권의 인스턴스를 검색합니다. 문화가 필요한 System.Globalization 네임 스페이스의 거의 모든 메서드에 사용할 수 있습니다.
CompareInfo, DateTimeFormat 및 NumberFormat과 같은 속성에서 반환 된 개체는 변형 문화권의 문자열 비교 및 서식 규칙도 반영합니다. 표시 할 때 InvariantCulture 속성 편리 오는 데이터를 유지 A의 문화 독립적 인 형식입니다.
예를 들어, 응용 프로그램의 현재 문화권과 관계없이 특정 형식으로 숫자 또는 날짜 시간을 표시하려면 CultureInfo.InvariantCulture 를 사용할 수 있습니다 .