Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pembungkusan adalah membungkus variabel tipe nilai seperti Windows::Foundation::DateTime—atau tipe skalar mendasar seperti int—dalam kelas referensi ketika variabel diteruskan ke metode yang mengambil Platform::Object^ sebagai jenis inputnya.
Meneruskan jenis nilai ke parameter Object^
Meskipun Anda tidak perlu secara eksplisit mengotak sebuah variabel untuk meneruskannya ke parameter metode tipe Platform::Object^, Anda harus secara eksplisit mengonversi kembali ke tipe asli ketika Anda mengambil nilai yang sebelumnya telah dibungkus.
Object^ obj = 5; //scalar value is implicitly boxed
int i = safe_cast<int>(obj); //unboxed with explicit cast.
Menggunakan Platform::IBox<T> untuk mendukung jenis nilai nullable
C# dan Visual Basic mendukung konsep jenis nilai nullable. Di C++/CX, Anda dapat menggunakan Platform::IBox<T> jenis untuk mengekspos metode publik yang mendukung parameter jenis nilai nullable. Contoh berikut menunjukkan metode publik C++/CX yang mengembalikan null saat pemanggil C# melewati null untuk salah satu argumen.
// 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);
}
};
Dalam klien C# XAML, Anda dapat menggunakannya seperti ini:
// C# client code
BoxingDemo.Class1 obj = new BoxingDemo.Class1();
int? a = null;
int? b = 5;
var result = obj.Multiply(a, b); //result = null
Lihat juga
Tipe Sistem (C++/CX)
Transmisi (C++/CX)
Referensi Bahasa C++/CX
Referensi dari Namespace