Binder.ChangeType(Object, Type, CultureInfo) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Изменяет тип заданного Object значения 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
Параметры
- value
- Object
Объект для изменения в новый Type.
- type
- Type
Новое Type , что value станет.
- culture
- CultureInfo
Экземпляр CultureInfo этого используется для управления приведением типов данных. В противном culturenullCultureInfo случае используется текущий поток.
Возвращаемое значение
Объект, содержащий заданное значение в качестве нового типа.
Комментарии
Отражение моделирует правила специальных возможностей системы общих типов. Например, если вызывающий объект находится в той же сборке, вызывающий объект не нуждается в специальных разрешениях для внутренних членов. В противном случае вызывающему объекту требуется ReflectionPermission. Это соответствует поиску элементов, защищенных, частных и т. д.
Общий принцип заключается в том, что ChangeType следует выполнять только расширяющие приведения, которые никогда не теряют данные. Пример расширения приведения — принуждающее значение, которое является 32-разрядным целым числом со знаком в значение, которое является 64-разрядным целым числом со знаком. Это отличается от сужающегося приведения, что может потерять данные. Пример сужения приведения заключается в принудительном принуждении 64-разрядного целого числа со знаком к 32-разрядному целому числу со знаком.
В следующей таблице перечислены приведение, выполняемые по умолчанию ChangeType.
| Тип источника | Тип целевого объекта |
|---|---|
| Любой тип | Базовый тип. |
| Любой тип | Интерфейс, который он реализует. |
| Уголь | UInt16, UInt32, Int32, UInt64, Int64, Single (число с плавающей точкой одинарной точности), Double (число с плавающей точкой двойной точности) |
| Байт | Char (Символ), UInt16 (Беззнаковое целое 16-битное), Int16 (Целое 16-битное), UInt32 (Беззнаковое целое 32-битное), Int32 (Целое 32-битное), UInt64 (Беззнаковое целое 64-битное), Int64 (Целое 64-битное), 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 | Одинарный, Двойной |
| Int64 | Одинарный, Двойной |
| Single | Double |
| Не ссылающийся | По ссылке. |
Если реализация привязчика позволяет принуждать строковые значения к числовым типам, culture параметр необходимо преобразовать строку, представляющую 1000 в Double значение, так как 1000 представлено по-разному различными языками и региональными параметрами. Привязка по умолчанию не выполняет такие приведения строк.