我知道我也沒有問這個問題。請幫助我更好地形成我的問題。如何處理C++/CLI中的句柄?
我有點困難讓我的思緒纏繞手柄 - 在某些方面,它看起來像指針。但是與指針不同的是,我似乎可以直接將值賦給句柄變量,並且它影響底層數據值,而不是句柄本身。
測試代碼清楚地表明,無論使用句柄還是「取消引用」句柄以獲取數據,我都可以獲得相同的值。顯然,這不適用於非託管指針。我不瞭解什麼?
#include <iostream>
int main()
{
int ^y;
int ^a, ^b, ^c;
long x;
y= gcnew int(100);
a=y;
b=y;
c=y;
c= gcnew int(200);
b= 300;
System::Console::WriteLine(y); // returns 100 (instead of something pointer-like)
System::Console::WriteLine(*y); // also returns 100
System::Console::WriteLine(a); // 100
System::Console::WriteLine(b); // 300
System::Console::WriteLine(c); // 200
x = static_cast<long>(y);
*y = 10;
System::Console::WriteLine(x); // 10
System::Console::WriteLine(y); // 10
System::Console::WriteLine(*y); // 10
}
編輯補充 - 我懷疑WirteLine可能已經爲我做過的提領,但我本來期望靜態投長期不會。這跟autllboxing有關嗎?