Aracılığıyla paylaş


VariantWrapper Sınıf

Tanım

Dikkat

VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.

Yönetilen koddan yönetilmeyen koda türündeki VT_VARIANT | VT_BYREF verileri sıralar. Bu sınıf devralınamaz.

public ref class VariantWrapper sealed
[System.Obsolete("VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.")]
public sealed class VariantWrapper
public sealed class VariantWrapper
[System.Serializable]
public sealed class VariantWrapper
[<System.Obsolete("VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.")>]
type VariantWrapper = class
type VariantWrapper = class
[<System.Serializable>]
type VariantWrapper = class
Public NotInheritable Class VariantWrapper
Devralma
VariantWrapper
Öznitelikler

Örnekler

Aşağıdaki kod örneği, birlikte çalışma sıralayıcısının VariantWrapper olarak VT_VARIANT | VT_BYREFgeçirdiği bir Object sarmalama için sınıfının nasıl kullanılacağını gösterir.

// Create an instance of an unmanged COM object.
UnmanagedComClass UnmanagedComClassInstance = new UnmanagedComClass();

// Create a string to pass to the COM object.
string helloString = "Hello World!";

// Wrap the string with the VariantWrapper class.
object var = new System.Runtime.InteropServices.VariantWrapper(helloString);

// Pass the wrapped object.
UnmanagedComClassInstance.MethodWithStringRefParam(ref var);
' Create an instance of an unmanged COM object.
Dim UnmanagedComClassInstance As New UnmanagedComClass()

' Create a string to pass to the COM object.
Dim helloString As String = "Hello World!"

' Wrap the string with the VariantWrapper class.
Dim var As Object = New System.Runtime.InteropServices.VariantWrapper(helloString)

' Pass the wrapped object.
UnmanagedComClassInstance.MethodWithStringRefParam(var)

Açıklamalar

amacı VariantWrapper , yönetilen türü ilgili VARIANT türe sıralarken bir dolaylılık düzeyi eklemektir.

Birlikte çalışma sıralayıcısının olarak VT_VARIANT | VT_BYREFgeçirdiği bir Object sarmalama için bu sınıfı kullanabilirsiniz. .NET Framework'ün 1.0 ve 1.1 sürümlerinde, türdeki VT_VARIANT | VT_BYREF değişken verileri yönetilmeyen koda sıralamak mümkün değildi. Birlikte çalışma sıralayıcısı yönetilen türün bir değişkenini (örneğin , VT_BSTR | VT_BYREFStringveya VT_I4 | VT_BYREF için Int32) geçirdi, ancak geçiremedi VT_VARIANT | VT_BYREF.

Değişken türleri kullanmanın VT_VARIANT | VT_BYREF bir avantajı, bir yöntem çağrısı sırasında veri türünün değiştirilebileceğidir. Örneğin, içeren bir VT_VARIANT | VT_BYREF değişken türü VT_BSTR geçirebilirsiniz ve bir yöntem çağrısının ardından içeren bir VT_I4 değişken döndürülür. COM birlikte çalışma sıralayıcısının ne zaman ve ne zaman geçirildiğini VT_BSTR | VT_BYREFVT_VARIANT | VT_BYREFbilmesinin hiçbir yolu olmadığından, olarak VARIANT *bildirilen bir for parametrelerini içeren bir BSTR değişkene işaret eder. Kullanarak VariantWrappersıralayıcıya bildirebilirsiniz.

Erken bağlamanın desteklenmediğini unutmayın; yalnızca çağrısı InvokeMember yaparken veya erken bağlanan bir şekilde çağrılan yalnızca Dispatch-only arabirimiyle kullanabilirsinizVariantWrapper. C# dilinde, türündeki refVariantWrapperherhangi bir parametrenin semantiğini belirtmek ByRef için anahtar sözcüğünü de kullanmanız gerekir. Visual Basic'te, ByRef her örtük geç bağlama çağrısı için semantikler otomatik olarak eklenir. Ayrıca, nesneleri ve nesne dizilerini iç içe geçirmenin VariantWrapperVariantWrapper desteklenmediğini unutmayın.

Oluşturucular

VariantWrapper(Object)
Geçersiz.

Belirtilen Object parametre için sınıfının yeni bir örneğini VariantWrapper başlatır.

Özellikler

WrappedObject
Geçersiz.

Nesnesi tarafından VariantWrapper sarmalanan nesneyi alır.

Yöntemler

Equals(Object)
Geçersiz.

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()
Geçersiz.

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()
Geçersiz.

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()
Geçersiz.

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()
Geçersiz.

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır