Binder.ChangeType(Object, Type, CultureInfo) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zmienia typ danej Object
wartości dla danego Type
elementu .
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 Type
element .
- 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.