Binder.ChangeType(Object, Type, CultureInfo) Méthode

Définition

Convertit le type du Object donné en Type donné.

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

Paramètres

value
Object

Objet à changer en nouveau Type.

type
Type

Le nouveau Type que value deviendra.

culture
CultureInfo

Instance de CultureInfo utilisée pour contrôler la contrainte des types de données. Si culture est null, le CultureInfo du thread actuel est utilisé.

Retours

Objet qui contient la valeur donnée comme type nouveau.

Remarques

La réflexion modélise les règles d’accessibilité du système de type commun. Par exemple, si l’appelant se trouve dans le même assembly, l’appelant n’a pas besoin d’autorisations spéciales pour les membres internes. Sinon, l’appelant a besoin de ReflectionPermission. Cela est cohérent avec la recherche de membres protégés, privés, etc.

Le principe général est de ne faire que ChangeType des contraintes de plus en plus larges, qui ne perdent jamais de données. Un exemple de contrainte étendue consiste à forcer une valeur qui est un entier signé 32 bits en une valeur qui est un entier signé 64 bits. Cela se distingue d’une contrainte restrictive, qui peut perdre des données. Un exemple de contrainte restrictive est la contrainte d’un entier signé 64 bits en entier signé 32 bits.

Le tableau suivant répertorie les contraintes effectuées par la valeur par défaut ChangeType.

Type de source Type cible
Tout type Son type de base.
Tout type Interface qu’il implémente.
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
Unique Double
Non-référence Par référence.

Si une implémentation de classeur autorise la contrainte des valeurs de chaîne sur des types numériques, le culture paramètre est nécessaire pour convertir une chaîne qui représente 1000 en valeur Double , car 1000 est représenté différemment par différentes cultures. Le binder par défaut ne fait pas de telles contraintes de chaînes.

S’applique à