Binder.ChangeType(Object, Type, CultureInfo) 메서드

정의

지정된 Object의 형식을 Type으로 변경합니다.

public:
 abstract System::Object ^ ChangeType(System::Object ^ value, Type ^ type, System::Globalization::CultureInfo ^ culture);
public abstract object ChangeType (object value, Type type, System.Globalization.CultureInfo? culture);
public abstract object ChangeType (object value, Type type, System.Globalization.CultureInfo culture);
abstract member ChangeType : obj * Type * System.Globalization.CultureInfo -> obj
Public MustOverride Function ChangeType (value As Object, type As Type, culture As CultureInfo) As Object

매개 변수

value
Object

Type으로 변경할 원본 개체입니다.

type
Type

형식이 변경될 value의 새 Type입니다.

culture
CultureInfo

데이터 형식의 강제 변환을 제어하는 데 사용되는 CultureInfo의 인스턴스입니다. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.

반환

Object

지정된 값을 새 형식으로 포함하는 개체입니다.

설명

리플렉션은 공통 형식 시스템의 접근성 규칙을 모델로 합니다. 예를 들어 호출자가 동일한 어셈블리에 있는 경우 호출자는 내부 멤버에 대한 특별한 권한이 필요하지 않습니다. 그렇지 않으면 호출자가 필요합니다 ReflectionPermission. 이는 보호되는 멤버, 프라이빗 등의 조회와 일치합니다.

일반적인 원칙은 ChangeType 데이터를 잃지 않는 확대된 강제 변환만 수행해야 한다는 것입니다. 확대 강제 변환의 예로 32비트 부속 정수인 값을 64비트 부속 정수 값으로 강제 변환합니다. 이는 데이터가 손실될 수 있는 축소된 강제 변환과 구별됩니다. 축소된 강제 변환의 예는 64비트 부 서명된 정수를 32비트 부 서명된 정수로 강제 변환하는 것입니다.

다음 표에서는 기본적으로 ChangeType수행되는 강제 변환을 나열합니다.

소스 형식 대상 형식
모든 형식 기본 형식입니다.
모든 형식 구현하는 인터페이스입니다.
Char UInt16, UInt32, Int32, UInt64, Int64, Single, Double
Byte Char, UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double
SByte Int16, Int32, Int64, Single, Double
UInt16 UInt32, Int32, UInt64, Int64, Single, Double
Int16 Int32, Int64, Single, Double
UInt32 UInt64, Int64, Single, Double
Int32 Int64, Single, Double
UInt64 Single, Double
Int64 Single, Double
Single Double
비 참조 참조 기준입니다.

바인더 구현에서 문자열 값을 숫자 형식 culture 으로 강제 변환할 수 있는 경우 1000은 다른 문화권에 의해 다르게 표현되므로 1000 Double 을 나타내는 문자열을 값으로 변환하려면 매개 변수가 필요합니다. 기본 바인더는 이러한 문자열 강제 변환을 수행하지 않습니다.

적용 대상