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 представлено по-разному различными языками и региональными параметрами. Привязка по умолчанию не выполняет такие приведения строк.

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