Aracılığıyla paylaş


Kutulama (C++/CX)

Kutulama, Windows::Foundation::D ateTime gibi bir değer türü değişkenini veya değişken giriş türü olarak Platform::Object^ alan bir yönteme geçirildiğinde ref sınıfında gibi inttemel bir skaler türü sarmalar.

Object^ parametresine değer türü geçirme

Bir değişkeni Platform::Object^ türünde bir yöntem parametresine geçirmek için açıkça kutulamayın, ancak daha önce kutulanmış değerleri alırken özgün türe açıkça geri döndürmeniz gerekir.

Object^ obj = 5; //scalar value is implicitly boxed
int i = safe_cast<int>(obj); //unboxed with explicit cast. 

Boş değer türlerini desteklemek için Platform::IBox<T> kullanma

C# ve Visual Basic, null atanabilir değer türleri kavramını destekler. C++/CX'te, null atanabilir değer türü parametrelerini destekleyen genel yöntemleri kullanıma açmak için türünü kullanabilirsiniz Platform::IBox<T> . Aşağıdaki örnekte, bir C# çağıranı bağımsız değişkenlerden biri için null değerini geçirdiğinde null döndüren bir C++/CX ortak yöntemi gösterilmektedir.

// A WinRT Component DLL
namespace BoxingDemo
{
    public ref class Class1 sealed
    {
    public:
        Class1(){}
        Platform::IBox<int>^ Multiply(Platform::IBox<int>^ a, Platform::IBox<int>^ b)
        {
            if(a == nullptr || b == nullptr)
                return nullptr;
            else
                return ref new Platform::Box<int>(a->Value * b->Value);
        }
    };

C# XAML istemcisinde şu şekilde kullanabilirsiniz:

// C# client code
BoxingDemo.Class1 obj = new BoxingDemo.Class1();
int? a = null;
int? b = 5;
var result = obj.Multiply(a, b); //result = null

Ayrıca bkz.

Tür Sistemi (C++/CX)
Atama (C++/CX)
C++/CX Dil Başvurusu
Ad Alanları Başvurusu