看板 C_Sharp 關於我們 聯絡資訊
在.NET裏,byte[] bb = new byte[] { 1, 2, 3, 4, 5}; 我想要取得bb陣列第3個開始的陣列指標名稱,如: byte[] b3 = &bb[2]; // 沒這種語法 請問有人知道該如何取得嗎? 一個很長的陣列, 不想讓user得記住第幾個開始才是該資料的位置 想在物件包裝時能有像指標一樣取得一個別名 讓user能直接操作該子陣列... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.105.59 ※ 編輯: tomex 來自: 111.250.105.59 (10/27 09:56)
tomex:其實c#有提供fixed{ *p }來暫時性操作該陣列但我想長存保存 10/27 10:03
yeo1987:http://nopaste.csie.org/fcf8e 類似這樣? 10/27 12:28
yeo1987:但是離開fixed了...我不知道會不會發生什麼事情XD 10/27 12:28
tomex:頻繁使用fixed也會增加很大的耗能損耗。 10/27 13:10
tomex:目前能把該位置轉成IntPtr,但轉回來時必須Copy,就失了原意 10/27 13:11
yeo1987:Marshal.AllocHGlobal轉成指標操作呢? 不需fixed跟copy了 10/28 01:16
yeo1987:要記得再轉回IntPtr用Marshal.FreeHGlobal釋放 10/28 01:17
tomex:我不是要操作,而是想在包裝物件時提供一個別名,user簡化用 10/28 02:09