내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

CultureInfo.CurrentCulture 속성

현재 스레드에서 사용하는 문화권을 나타내는 CultureInfo 개체를 가져옵니다.

네임스페이스:  System.Globalization
어셈블리:  mscorlib(mscorlib.dll)

public static CultureInfo CurrentCulture { get; }

속성 값

형식: System.Globalization.CultureInfo
현재 스레드에서 사용하는 문화권을 나타내는 개체입니다.

문화권은 실행 스레드의 속성입니다. 이 읽기 전용 속성은 검색하는 CultureInfo 에서 반환 된 개체는 Thread.CurrentCulture 속성을 반환합니다. 이 속성에 의해 반환된 CultureInfo 개체 및 그 연관된 개체들은 날짜, 시간, 숫자, 통화 값, 텍스트의 정렬 순서, 대소문자 확인 규칙 및 문자열 비교에 대한 기본 형식을 지정합니다.

스레드의 Culture를 확인 하는 방법

스레드가 시작될 때 처음에 culture 다음과 같이 결정 됩니다.

  • 지정 된 culture를 검색하여 해당 DefaultThreadCurrentCulture 스레드가 실행되는 속성 값이 응용 프로그램 도메인 속성 null로 지정됩니다.

  • Windows GetUserDefaultLocaleName 함수를 호출하여

다른 시스템 설치 문화권 또는 사용자의 기본 설정된 문화권 특정 culture를 설정 하 고 다중 스레드 응용 프로그램을 시작하는 경우 해당 스레드의 현재 문화권 되고 반환 되는 문화권의 GetUserDefaultLocaleName 문화권을 지정하지 않을 경우 작동은 DefaultThreadCurrentCulture 스레드가 실행 중인 응용 프로그램 도메인의 속성을 사용한다는 것을 참고하시기 바랍니다.

스레드의 문화권을 확인 하는 방법에 대한 자세한 내용은 CultureInfo 참조 페이지에서 "Culture 및 스레드" 섹션을 참조하십시오.

명시적으로 CurrentCulture 속성 설정

기존 스레드에 의해 사용되는 문화권을 변경 하려면 설정에서 Thread.CurrentCulture 속성을 새로운 문화로 합니다. 명시적으로 스레드의 culture를 변경 하는 방법으로 변경 하는 경우 스레드가 응용 프로그램 도메인 경계를 교차 하는 경우 유지 됩니다. 다음 예제에서는 현재 스레드 문화권 네덜란드어 (네덜란드) 변경합니다. 현재 스레드가 응용 프로그램 도메인 경계를 교차 하는 경우 현재 문화권의 상태로 변경된 것을 보여줍니다.


using System;
using System.Globalization;
using System.Threading;

public class Info : MarshalByRefObject
{
   public void ShowCurrentCulture()
   {
      Console.WriteLine("Culture of {0} in application domain {1}: {2}",
                        Thread.CurrentThread.Name,
                        AppDomain.CurrentDomain.FriendlyName,
                        CultureInfo.CurrentCulture.Name);
   }
}

public class Example
{
   public static void Main()
   {
      Info inf = new Info();
      // Set the current culture to Dutch (Netherlands).
      Thread.CurrentThread.Name = "MainThread";
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("nl-NL");
      inf.ShowCurrentCulture();

      // Create a new application domain.
       AppDomain ad = AppDomain.CreateDomain("Domain2");
       Info inf2 = (Info) ad.CreateInstanceAndUnwrap(typeof(Info).Assembly.FullName, "Info");
       inf2.ShowCurrentCulture();                       
   }
}
// The example displays the following output:
//       Culture of MainThread in application domain ChangeCulture1.exe: nl-NL
//       Culture of MainThread in application domain Domain2: nl-NL


참고참고

문화권을 사용하여 변경의 Thread.CurrentThread 속성을 사용 하려면 SecurityPermission 사용 권한으로는 ControlThread 값이 설정합니다. 스레드와 관련된 보안 상태 때문에 스레드를 조작하는 것은 위험합니다. 따라서 이 사용 권한은 신뢰할 수 있는 코드에 필요할 때만 부여해야 합니다. 부분 신뢰 코드에서는 스레드의 문화권을 변경할 수 없습니다.

.NET Framework 4로 시작된 현재 스레드 문화권 (예: 프랑스어) 중립 문화권 또는 특정 문화권 (예: 프랑스어 (캐나다))를 명시적으로 변경할 수 있습니다. CultureInfo 개체 값의 중립 문화권을 나타내고 CultureInfo 과 같은 속성 Calendar, CompareInfo, DateTimeFormat, NumberFormat, 및 TextInfo 중립 culture와 관련 된 특정 문화권을 반영합니다. 예를 들어 영어 중립 문화권에 대한 주요 문화권은 영어 (미국). 독일어 문화권은 지배적인 문화권과 독일어 (독일)입니다. 다음 예제에서는 프랑스어 현재 스레드가 특정 문화권, 프랑스어 (캐나다) 및 중립 문화권으로 설정된 경우 서식 차이 보여 줍니다.


using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      double value = 1634.92;
      Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
      Console.WriteLine("Current Culture: {0}", 
                        CultureInfo.CurrentCulture.Name);
      Console.WriteLine("{0:C2}\n", value);

      Thread.CurrentThread.CurrentCulture = new CultureInfo("fr");
      Console.WriteLine("Current Culture: {0}", 
                        CultureInfo.CurrentCulture.Name);
      Console.WriteLine("{0:C2}", value);
   }
}
// The example displays the following output:
//       Current Culture: fr-CA
//       1 634,92 $
//       
//       Current Culture: fr
//       1 634,92 €


또한 Thread.CurrentCulture 와 함께 속성의 HttpRequest.UserLanguages 속성을 설정 하는 CurrentCulture 을 다음 예제와 같이 ASP.NET 응용 프로그램은 사용자의 culture의 기본 설정하여 사용할 수 있습니다.


Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);


현재 문화권 및 사용자 재정의

CultureInfo 개체와 연결된 개체를 사용하여 국가 및 언어 옵션 컨트롤 패널에서 Windows의 표준 속성 값을 재정의할 수 있습니다. CultureInfo 에서 반환된 개체는 CurrentCulture 속성으로 다음과 같은 경우에 이러한 사용자 재정의 반영합니다.

  • Windows는 현재 스레드 문화권과 암시적으로 설정하면 GetUserDefaultLocaleName 함수입니다.

  • 현재 스레드 문화권에 의해 정의된 DefaultThreadCurrentCulture Windows 시스템의 현재 문화권에 해당 하는 속성입니다.

  • 현재 스레드 문화권에 의해 반환되는 문화권을 명시적으로 설정되어 있는 CreateSpecificCulture 메서드와 culture Windows 시스템의 현재 문화권에 해당합니다.

  • 현재 스레드 문화권에 의해 반환되는 문화권을 명시적으로 설정되어 있는 CultureInfo(String) 메서드와 culture Windows 시스템의 현재 문화권에 해당합니다.

특히 서버 응용 프로그램에 대한 일부 경우에는 현재 문화권을 설정한 CultureInfo 개체 사용자 재정의를 반영하는데 적절 하지 않을 수 있습니다. 대신 다음과 같이 사용자 재정의를 반영하지 않는 CultureInfo 현재 스레드 문화권을 설정할 수 있습니다.

다음 코드 예제에서는 현재 스레드의 CurrentCultureCurrentUICulture를 변경하는 방법을 보여 줍니다.


using System;
using System.Globalization;
using System.Security.Permissions;
using System.Threading;

[assembly:SecurityPermission( SecurityAction.RequestMinimum, ControlThread = true )]
public class SamplesCultureInfo  {

   public static void Main()  {

      // Displays the name of the CurrentCulture of the current thread.
      Console.WriteLine( "CurrentCulture is {0}.", CultureInfo.CurrentCulture.Name );

      // Changes the CurrentCulture of the current thread to th-TH.
      Thread.CurrentThread.CurrentCulture = new CultureInfo( "th-TH", false );
      Console.WriteLine( "CurrentCulture is now {0}.", CultureInfo.CurrentCulture.Name );

      // Displays the name of the CurrentUICulture of the current thread.
      Console.WriteLine( "CurrentUICulture is {0}.", CultureInfo.CurrentUICulture.Name );

      // Changes the CurrentUICulture of the current thread to ja-JP.
      Thread.CurrentThread.CurrentUICulture = new CultureInfo( "ja-JP", false );
      Console.WriteLine( "CurrentUICulture is now {0}.", CultureInfo.CurrentUICulture.Name );

   }

}

/*
This code produces the following output, if the ControlThread permission is granted (for example, if this code is run from the local drive).

CurrentCulture is en-US.
CurrentCulture is now th-TH.
CurrentUICulture is en-US.
CurrentUICulture is now ja-JP.

*/


.NET Framework

4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

이식 가능한 클래스 라이브러리

이식 가능한 클래스 라이브러리에서 지원

Windows 스토어 앱용 .NET

Windows 8에서 지원

Windows Phone 앱용 .NET

Windows Phone 8, Silverlight 8.1에서 지원

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft