Binder.ChangeType(Object, Type, CultureInfo) Метод

Определение

Меняет тип заданного Object на заданный Type.Changes the type of the given Object to the given 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

Параметры

value
Object

Объект, для которого должен быть изменен параметр Type.The object to change into a new Type.

type
Type

Новый параметр Type, к которому будет приведен параметр value.The new Type that value will become.

culture
CultureInfo

Экземпляр объекта CultureInfo, используемый для управления приведением типов данных.An instance of CultureInfo that is used to control the coercion of data types. Если параметр culture имеет значение null, для текущего потока используется объект CultureInfo.If culture is null, the CultureInfo for the current thread is used.

Примечание.  Например, этот параметр необходим для преобразования значения типа String, представляющего число 1000, в значение типа Double, поскольку в разных языках и региональных параметрах значение 1000 представляется по-разному.Note For example, this parameter is necessary to convert a String that represents 1000 to a Double value, because 1000 is represented differently by different cultures.

Возвраты

Объект, содержащий заданное значение в качестве нового типа.An object that contains the given value as the new type.

Комментарии

Отражение моделирует правила специальных возможностей системы общих типов.Reflection models the accessibility rules of the common type system. Например, если вызывающий объект находится в той же сборке, вызывающему объекту не требуются специальные разрешения для внутренних членов.For example, if the caller is in the same assembly, the caller does not need special permissions for internal members. В противном случае вызывающему объекту требуется ReflectionPermission.Otherwise, the caller needs ReflectionPermission. Это согласуется с поиском защищенных, закрытых и других элементов.This is consistent with lookup of members that are protected, private, and so on.

Основным принципом является то ChangeType , что следует выполнять только расширяющее преобразование, которое никогда не теряет данные.The general principle is that ChangeType should perform only widening coercions, which never lose data. Примером расширяющего приведения является приведение значения, которое является 32-битным целым числом со знаком, к значению, которое является 64-битным целым числом со знаком.An example of a widening coercion is coercing a value that is a 32-bit signed integer to a value that is a 64-bit signed integer. Это отличается от сужающего приведения, что может привести к потере данных.This is distinguished from a narrowing coercion, which may lose data. Примером сужающего приведения является преобразование 64-битового целого числа со знаком в 32-разрядное целое число со знаком.An example of a narrowing coercion is coercing a 64-bit signed integer to a 32-bit signed integer.

В следующей таблице перечислены преобразования, выполняемые по умолчанию ChangeType.The following table lists the coercions performed by the default ChangeType.

Тип исходного значенияSource type Тип результирующего значенияTarget type
Любой типAny type Его базовый тип.Its base type.
Любой типAny type Интерфейс, который он реализует.The interface it implements.
CharChar UInt16, UInt32, Int32, UInt64, Int64, Single, DoubleUInt16, UInt32, Int32, UInt64, Int64, Single, Double
ByteByte Char, UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, DoubleChar, UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double
SByteSByte Int16, Int32, Int64, Single, DoubleInt16, Int32, Int64, Single, Double
UInt16UInt16 UInt32, Int32, UInt64, Int64, Single, DoubleUInt32, Int32, UInt64, Int64, Single, Double
Int16Int16 Int32, Int64, Single, DoubleInt32, Int64, Single, Double
UInt32UInt32 UInt64, Int64, Single, DoubleUInt64, Int64, Single, Double
Int32Int32 Int64, Single, DoubleInt64, Single, Double
UInt64UInt64 Single, DoubleSingle, Double
Int64Int64 Single, DoubleSingle, Double
SingleSingle DoubleDouble
Не является ссылкойNon-reference По ссылке.By-reference.

Применяется к