Binder.ChangeType(Object, Type, CultureInfo) Methode

Definition

Ändert den Typ des angegebenen ObjectTypeBereichs.

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);
abstract member ChangeType : obj * Type * System.Globalization.CultureInfo -> obj
Public MustOverride Function ChangeType (value As Object, type As Type, culture As CultureInfo) As Object

Parameter

value
Object

Das Objekt, das in ein neues Typegeändert werden soll.

type
Type

Das neue Type , das value wird.

culture
CultureInfo

Eine Instanz davon CultureInfo wird verwendet, um die Koersion von Datentypen zu steuern. Ist culture dies nullder Grund, wird der CultureInfo aktuelle Thread verwendet.

Gibt zurück

Ein Objekt, das den angegebenen Wert als neuen Typ enthält.

Hinweise

Spiegelung modelliert die Barrierefreiheitsregeln des allgemeinen Typsystems. Wenn sich der Aufrufer beispielsweise in derselben Assembly befindet, benötigt der Aufrufer keine speziellen Berechtigungen für interne Member. Andernfalls benötigt ReflectionPermissionder Anrufer . Dies entspricht dem Nachschlagen von Mitgliedern, die geschützt, privat usw. sind.

Das allgemeine Prinzip besteht darin, dass ChangeType nur Verbreiterungskoerionen durchgeführt werden sollten, die niemals Daten verlieren. Ein Beispiel für eine verbreiternde Koersion ist das Erzwingen eines Werts, bei dem es sich um eine 32-Bit-ganzzahlige Vorzeichen handelt, auf einen Wert, der eine 64-Bit-ganzzahl ist. Dies unterscheidet sich von einer schmalen Koersion, die möglicherweise Daten verliert. Ein Beispiel für eine schmale Koersion ist das Erzwingen einer 64-Bit-Ganzzahl mit Vorzeichen in eine 32-Bit-Ganzzahl.

In der folgenden Tabelle sind die von der Standardeinstellung ChangeTypeausgeführten Koerzionen aufgeführt.

Quelltyp Zieltyp
Beliebiger Typ Der Basistyp.
Beliebiger Typ Die schnittstelle, die implementiert wird.
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 Einzelzimmer, Doppelzimmer
Int64 Einzelzimmer, Doppelzimmer
Ledig Double
Nichtverweis NachVerweis.

Wenn eine Binderimplementierung die Koersion von Zeichenfolgenwerten zu numerischen Typen zulässt, ist der culture Parameter erforderlich, um eine Zeichenfolge zu konvertieren, die 1000 in einen Double Wert darstellt, da 1000 unterschiedlich durch verschiedene Kulturen dargestellt wird. Der Standardordner führt solche Zeichenfolgenkoerionen nicht durch.

Gilt für: