我們何時應該使用此屬性,爲什麼我們需要它?例如,如果c中的本地函數將一個指向unsigned char的指針作爲參數,並且我知道需要實現無符號字符數組,爲什麼我不能使用C#中的字節數組來使用此函數?是否有必要編組?MarshalAs屬性案例研究
5
A
回答
6
在大多數情況下,運行時將能夠自動確定如何在原生代碼和託管代碼之間編組數據,因此您通常不需要指定屬性。 MarshalAs
僅當定義中存在歧義(並且您想要精確地告訴運行時如何編組數據)或者您需要非默認行爲時纔是必需的。
根據我的經驗,MarshalAs
只有在處理字符串時才真正需要,因爲在本機代碼中有很多不同的表示形式; unicode/ansi,c字符串與否,等等。
1
MarshalAs屬性的額外用法是使用ByValArray和SizeConst參數編組固定大小的數組(包括固定大小的字符串)。例如,Windows API中的許多結構都包含固定大小的字符串。
相關問題
- 1. 可擴展性案例研究
- 2. AnnoyingCritter GridWorld案例研究
- 3. 無形案例研究
- 4. 案例研究中的Bugzilla
- 5. 使用接口:案例研究
- 6. 案例研究的基本程序
- 7. SOAP與REST:語用案例研究?
- 8. PostgreSQL全文搜索案例研究?
- 9. 漏洞與攻擊案例研究
- 10. Java多線程:飛機和跑道案例研究示例
- 11. 使用斷點進行PHP調試 - 案例研究,示例..?
- 12. eyetracking包可用性研究?
- 13. 實踐設計模式的評估/案例研究
- 14. HTTP POST和響應的具體案例研究
- 15. 單身和靜態課程案例研究
- 16. HR定時器精確度研究案例
- 17. 任何已知的Orchard CMS案例研究?
- 18. 爲研究
- 19. Phrasequery做研究
- 20. 受保護數據成員的替代方案,具體案例研究
- 21. Typeswitch案例屬性()?
- 22. 研究屬性ARIA還爲時尚早嗎?
- 23. 什麼是標識研究完成的屬性
- 24. C++ Cli [MarshalAs]屬性生效時刻?
- 25. 當我從JavaScript的研究轉移到研究的jQuery
- 26. SubSonic Oracle和屬性案例
- 27. 是否有關於ASP.NET動態數據框架(DDF)的實際案例研究?
- 28. 是否有任何類似於LinkedIn Engineering發佈的案例研究?
- 29. 如何在Sublime text 2中爲GridWorld案例研究設置構建?
- 30. 作爲研究樣本大小的點大小的散點圖研究多項研究的手段