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

정의

지정된 Object의 형식을 Type으로 변경합니다.Changes the type of the given Object to the given 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으로 변경할 원본 개체입니다.The object to change into a new Type.

type
Type

형식이 변경될 value의 새 Type입니다.The new Type that value will become.

culture
CultureInfo

데이터 형식의 강제 변환을 제어하는 데 사용되는 CultureInfo의 인스턴스입니다.An instance of CultureInfo that is used to control the coercion of data types. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.If culture is null, the CultureInfo for the current thread is used.

반환

Object

지정된 값을 새 형식으로 포함하는 개체입니다.An object that contains the given value as the new type.

설명

리플렉션에서는 공용 형식 시스템의 접근성 규칙을 모델링 합니다.Reflection models the accessibility rules of the common type system. 예를 들어 호출자가 동일한 어셈블리에 있는 경우 호출자는 내부 멤버에 대 한 특별 한 권한이 필요 하지 않습니다.For example, if the caller is in the same assembly, the caller does not need special permissions for internal members. 그렇지 않으면 호출자가 필요 ReflectionPermission 합니다.Otherwise, the caller needs ReflectionPermission. 이는 protected, private 등의 멤버를 조회 하는 것과 일치 합니다.This is consistent with lookup of members that are protected, private, and so on.

일반적인 원칙은 ChangeType 데이터를 잃지 않는 확대 강제 변환만 수행 해야 한다는 것입니다.The general principle is that ChangeType should perform only widening coercions, which never lose data. 확대 변환의 예는 32 비트 부호 있는 정수 값을 64 비트 부호 있는 정수 값으로 강제 변환 하는 것입니다.An example of a widening coercion is coercing a value that is a 32-bit signed integer to a value that is a 64-bit signed integer. 이는 데이터가 손실 될 수 있는 축소 강제 변환과 구분 됩니다.This is distinguished from a narrowing coercion, which may lose data. 축소 변환의 예는 64 비트 부호 있는 정수를 32 비트 부호 있는 정수로 강제 변환는 것입니다.An example of a narrowing coercion is coercing a 64-bit signed integer to a 32-bit signed integer.

다음 표에서는 기본적으로 수행 되는 강제 변환을 보여 줍니다 ChangeType .The following table lists the coercions performed by the default ChangeType.

소스 형식Source type 대상 형식Target type
모든 형식Any type 기본 형식입니다.Its base type.
모든 형식Any type 구현 하는 인터페이스입니다.The interface it implements.
CharChar UInt16, UInt32, Int32, UInt64, Int64, Single, DoubleUInt16, UInt32, Int32, UInt64, Int64, Single, Double
ByteByte Char, UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, DoubleChar, UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double
SByteSByte Int16, Int32, Int64, Single, DoubleInt16, Int32, Int64, Single, Double
UInt16UInt16 UInt32, Int32, UInt64, Int64, Single, DoubleUInt32, Int32, UInt64, Int64, Single, Double
Int16Int16 Int32, Int64, Single, DoubleInt32, Int64, Single, Double
UInt32UInt32 UInt64, Int64, Single, DoubleUInt64, Int64, Single, Double
Int32Int32 Int64, Single, DoubleInt64, Single, Double
UInt64UInt64 Single, DoubleSingle, Double
Int64Int64 Single, DoubleSingle, Double
SingleSingle DoubleDouble
비 참조Non-reference 참조용입니다.By-reference.

바인더 구현에서 문자열 값을 숫자 형식으로 강제 변환할 수 있는 경우 culture Double 1000은 문화권 마다 다르게 표현 되므로 1000을 나타내는 문자열을 값으로 변환 하기 위해 매개 변수가 필요 합니다.If a binder implementation allows coercion of string values to numeric types, the culture parameter is necessary to convert a string that represents 1000 to a Double value, because 1000 is represented differently by different cultures. 기본 바인더는 이러한 문자열 강제 변환을 수행하지 않습니다.The default binder does not do such string coercions.

적용 대상