Udostępnij za pośrednictwem


Binder.ChangeType(Object, Type, CultureInfo) Metoda

Definicja

Zmienia typ danej Object wartości dla danego Typeelementu .

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

Parametry

value
Object

Obiekt, który ma ulec zmianie na nowy Typeelement .

type
Type

Nowy Type , który value stanie się.

culture
CultureInfo

Wystąpienie używane do kontrolowania CultureInfo przymusu typów danych. Jeśli culture jest to null, CultureInfo jest używany element dla bieżącego wątku.

Zwraca

Obiekt zawierający daną wartość jako nowy typ.

Uwagi

Odbicia modeluje reguły ułatwień dostępu wspólnego systemu typów. Jeśli na przykład obiekt wywołujący znajduje się w tym samym zestawie, obiekt wywołujący nie potrzebuje specjalnych uprawnień dla wewnętrznych elementów członkowskich. W przeciwnym razie obiekt wywołujący musi .ReflectionPermission Jest to zgodne z wyszukiwaniem elementów członkowskich, które są chronione, prywatne itd.

Ogólna zasada polega na tym, że ChangeType powinny wykonywać tylko rozszerzające się przymusy, które nigdy nie tracą danych. Przykładem rozszerzenia przymusu jest wymuszanie wartości, która jest 32-bitową liczbą całkowitą podpisaną do wartości, która jest 64-bitową liczbą całkowitą ze znakiem. Jest to rozróżniane od zawężania, co może spowodować utratę danych. Przykładem zawężania przymusu jest wymuszanie 64-bitowej liczby całkowitej ze znakiem 32-bitowym.

W poniższej tabeli wymieniono przymusy wykonywane domyślnie ChangeType.

Typ źródła Typ docelowy
Dowolny typ Jego typ podstawowy.
Dowolny typ Interfejs, który implementuje.
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
Pojedynczy Double
Brak odwołania Według odwołania.

Jeśli implementacja bindera zezwala na wymuszanie wartości ciągów do typów liczbowych, culture parametr jest niezbędny do przekonwertowania ciągu reprezentującego 1000 na Double wartość, ponieważ 1000 jest reprezentowane inaczej przez różne kultury. Domyślny binder nie wykonuje takich przymusów ciągów.

Dotyczy