這顯然是一個谷歌證明術語,因爲我不能讓任何搜索引擎不扔掉「額外」字符。我也在C++參考中看過MSDN,但是我似乎找不到C++/CLI參考,因爲它的聲明部分沒有任何內容。C++/CLI對象^%(caret percent-sign)聲明是什麼意思?
16
A
回答
10
它與原生參考(Object&
)類似,但跟蹤參考可以引用CLR對象,而原生參考不能。區別是必要的,因爲垃圾收集器可以移動CLR對象,所以CLR對象的內存地址可能會改變。
^
只是表示它被管理。見MSDN和this SO post。
7
實質上,它是Object*&
的「受管理」版本,相當於ref
或out
對於C#中的引用類型。
0
這是一個C++/CLI Tracking Reference。這有點像C++引用,但是對於一個託管對象。
15
意指 「按引用傳遞」:在C++
void bar::foo(Object^% arg) {
arg = gcnew Object; // Callers argument gets updated
}
同樣的事情:
void foo(Object** arg) {
*arg = new Object;
}
或C#:
void foo(out object arg) {
arg = new Object();
}
C++/CLI不區分參考和列出,它沒有t有明確的賦值檢查功能,因此C#語言不需要區分這兩者。在VB.NET中,ByRef vs ByVal也一樣。
3
這是一個引用的託管指針。所以,如果你有這樣的事情:在C#
void DoSomething(System::String^% stringObject)
它會是什麼樣子:
void DoSomething(ref System.String stringObject)
相關問題
- 1. 用static關鍵字聲明一個對象是什麼意思?
- 2. 矢量對象聲明後的括號是什麼意思?
- 3. 以下聲明是什麼意思?
- 4. C聲明是什麼意思?
- 5. 這個CSS聲明是什麼意思?
- 6. 這個C#聲明是什麼意思?
- 7. 以下聲明是什麼意思?
- 8. 聲明新員工聲明是什麼意思* [編號] C++
- 9. 這個聲明是什麼//! [數字]是什麼意思?
- 10. Java錯誤 - 不是一個聲明,這是什麼意思?
- 11. 什麼`... |類型聲明中的b - > c是什麼意思?
- 12. 是什麼意思:是什麼意思?
- 13. 對象聲明在Python類中是什麼意思,我應該使用它嗎?
- 14. 在對象上聲明實例名稱Flash AS3是什麼意思?
- 15. 「對象仿射」是什麼意思?
- 16. 「最衍生對象」是什麼意思?
- 17. 空對象是什麼意思?
- 18. 變量聲明後面的一個問號是什麼意思?
- 19. Resharper的「對象分配(明顯)」是什麼意思?
- 20. 這是什麼CSS聲明的意思是 - 兩個聲明一次
- 21. $是什麼?意思是在shell中如果聲明?
- 22. 「^ =」(caret等於)是什麼意思在jQuery中?
- 23. 說明什麼是「神器」意思是
- 24. 聲明「extern struct cpu * cpu asm(」%gs:0「);」是什麼意思?
- 25. 這個C函數聲明是什麼意思?
- 26. C中的這個雙聲明是什麼意思?
- 27. 「殘疾回聲」是什麼意思?
- 28. 在@interface中聲明IBOutlet是什麼意思?
- 29. Perl:sub聲明的arg列表中的\ $是什麼意思?
- 30. 在類的函數聲明後,「default」是什麼意思?
MSDN:http://msdn.microsoft.com/en-us/library/8903062a%28VS.80 %29.aspx另請參閱:http://stackoverflow.com/questions/202463/what-does-the-caret-mean-in-c-cli – 2011-02-18 00:35:27