Binder.ChangeType(Object, Type, CultureInfo) Metod

Definition

Ändrar typen av angiven Object till den angivna 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);
abstract member ChangeType : obj * Type * System.Globalization.CultureInfo -> obj
Public MustOverride Function ChangeType (value As Object, type As Type, culture As CultureInfo) As Object

Parametrar

value
Object

Objektet som ska ändras till en ny Type.

type
Type

Det nya Type som kommer att value bli.

culture
CultureInfo

En instans av CultureInfo detta används för att kontrollera tvånget av datatyper. Om culture är nullCultureInfo används för den aktuella tråden.

Returer

Ett objekt som innehåller det angivna värdet som ny typ.

Kommentarer

Reflektion modellerar tillgänglighetsreglerna för det gemensamma typsystemet. Om anroparen till exempel är i samma sammansättning behöver anroparen inte särskilda behörigheter för interna medlemmar. Annars behöver ReflectionPermissionanroparen . Detta överensstämmer med uppslag av medlemmar som är skyddade, privata och så vidare.

Den allmänna principen är att ChangeType endast ska utföra bredare tvång, som aldrig förlorar data. Ett exempel på ett bredare tvång är att tvinga fram ett värde som är ett 32-bitars signerat heltal till ett värde som är ett 64-bitars signerat heltal. Detta skiljer sig från ett begränsat tvång som kan förlora data. Ett exempel på ett begränsat tvång är att tvinga ett 64-bitars signerat heltal till ett 32-bitars signerat heltal.

I följande tabell visas de tvång som utförs som standard ChangeType.

Typ av källa Måltyp
Alla typer Dess bastyp.
Alla typer Gränssnittet som implementeras.
Char UInt16, UInt32, Int32, UInt64, Int64, Single, Double
byte Char, UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double (These are standard integer and floating-point data types used in programming.)
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, Enkel, Dubbel
UInt64 Enkel, Dubbel
Int64 Enkel, Dubbel
Single Double
Ej referens Efter referens.

Om en bindemedelsimplementering tillåter tvång av strängvärden till numeriska typer är parametern culture nödvändig för att konvertera en sträng som representerar 1 000 till ett Double värde, eftersom 1 000 representeras på olika sätt av olika kulturer. Standardbindningen utför inte sådana strängtvång.

Gäller för