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 int
temel 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