Binder.ChangeType(Object, Type, CultureInfo) Yöntem

Tanım

Verilen Object öğesinin türünü verilen Typeolarak değiştirir.

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

Parametreler

value
Object

Yeni Typebir öğesine dönüştürülecek nesne.

type
Type

Type Yeni olacakvalue.

culture
CultureInfo

Bunun bir CultureInfo örneği, veri türlerinin zorlamasını denetlemek için kullanılır. ise culturenull, CultureInfo geçerli iş parçacığı için kullanılır.

Döndürülenler

Yeni tür olarak verilen değeri içeren bir nesne.

Açıklamalar

Yansıma, ortak tür sisteminin erişilebilirlik kurallarını modeller. Örneğin, çağıran aynı derlemedeyse, çağıranın iç üyeler için özel izinlere ihtiyacı yoktur. Aksi takdirde, çağıranın öğesine ihtiyacı vardır ReflectionPermission. Bu, korumalı, özel vb. üyelerin aramasıyla tutarlıdır.

Genel ilke, yalnızca hiçbir zaman veri kaybetmeyen genişletme zorlamaları gerçekleştirmesi gerektiğidir ChangeType . Genişletme zorlamasına örnek olarak, 32 bit işaretli tamsayı olan bir değeri 64 bit işaretli bir tamsayıya zorlamak örnek olarak gösterilir. Bu, veri kaybına neden olabilecek darlama zorlamasından ayırt edilir. Daraltma zorlamasına örnek olarak, 64 bit işaretli bir tamsayıyı 32 bit işaretli bir tamsayıya zorlamak örnek olarak gösterilir.

Aşağıdaki tabloda, varsayılan ChangeTypetarafından gerçekleştirilen zorlamalar listelenir.

Kaynak türü Hedef türü
Herhangi bir tür Temel türü.
Herhangi bir tür Uyguladığı arabirim.
Char UInt16, UInt32, Int32, UInt64, Int64, Single, Double
Bayt Char, UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double
SByte Int16, Int32, Int64, Tek, Çift
UInt16 UInt32, Int32, UInt64, Int64, Tek, Çift
Int16 Int32, Int64, Tek, Çift
UInt32 UInt64, Int64, Tek, Çift
Int32 Int64, Tek, Çift
UInt64 Tek, Çift
Int64 Tek, Çift
Tek Çift
Başvuru dışı Başvuruya göre.

Bağlayıcı uygulaması dize değerlerini sayısal türlere zorlamaya izin veriyorsa, culture 1000'i temsil eden bir dizeyi bir Double değere dönüştürmek için parametresi gereklidir çünkü 1000 farklı kültürler tarafından farklı temsil edilir. Varsayılan bağlayıcı bu tür dize zorlamalarını yapmaz.

Şunlara uygulanır