Поделиться через


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);
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, используемый для управления приведением типов данных. Если параметр culture имеет значение null, для текущего потока используется объект CultureInfo.

Возвращаемое значение

Объект, содержащий заданное значение в качестве нового типа.

Комментарии

Отражение моделирует правила специальных возможностей системы общих типов. Например, если вызывающий объект находится в той же сборке, вызывающий объект не нуждается в специальных разрешениях для внутренних членов. В противном случае вызывающему объекту требуется ReflectionPermission. Это согласуется с поиском защищенных, закрытых и т. д.

Общий принцип заключается в том, что ChangeType следует выполнять только расширяющие приведения, которые никогда не теряют данные. Примером расширяющегося приведения является приведение значения, представляющее собой 32-разрядное целое число со знаком, к значению, которое является 64-разрядным целым числом со знаком. Это отличается от сужающего приведения, что может привести к потере данных. Примером сужающего приведения является приведение 64-разрядного целого числа со знаком к 32-разрядному целому числу со знаком.

В следующей таблице перечислены приведения, выполняемые по умолчанию ChangeType.

Тип исходного значения Тип результирующего значения
Любой тип Его базовый тип.
Любой тип Интерфейс, который он реализует.
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
Single Double
Без ссылок По ссылке.

Если реализация связывателя позволяет приведение строковых значений к числовым типам, culture параметр необходим для преобразования строки, представляющей 1000, в Double значение, так как значение 1000 по-разному представлено разными языками и региональными параметрами. Связыватель по умолчанию не выполняет подобного преобразования строковых типов.

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