다음을 통해 공유


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가 사용됩니다.

반환

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

설명

리플렉션은 공통 형식 시스템의 접근성 규칙을 모델링합니다. 예를 들어 호출자가 동일한 어셈블리에 있는 경우 호출자는 내부 멤버에 대한 특별한 권한이 필요하지 않습니다. 그렇지 않으면 호출자에게 가 필요합니다 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을 나타내는 문자열을 값으로 변환해야 합니다 Double . 1000은 서로 다른 문화권에 의해 다르게 표현되기 때문입니다. 기본 바인더는 이러한 문자열 강제 변환을 수행하지 않습니다.

적용 대상