国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

VB.NET特性之FieldOffset特性

2024-07-10 13:01:33
字體:
來源:轉載
供稿:網友
vb.net特性

-----fieldoffset特性





在選擇顯示布局的時候,結構中的所有變量的定義必須包含fieldoffset特性。這個特性指定了距結構開始處的距離(以字節位單位)。



imports system.runtime.interopservices

<structlayout(layoutkind.explicit)> _

structure test

<fieldoffset(0)>dim red as byte

<fieldoffset(1)>dim green as byte

<fieldoffset(2)>dim blue as byte

<fieldoffset(3)>dim alpha as byte

end structure



structlayout特性與fieldoffset特性可以實現聯合(union)。聯合(union)已經被多種語言(如 c和c++)采用,但是vb卻不具備這一語言特性。聯合(union)是一種可以使得結構中的兩個或多個元素在內存中重疊,以及使用不同的名稱來指示同一內存位置。



在.net中,聯合(union)的關鍵在于支持顯示結構布局。



如:

imports system.runtime.interopservices

<structlayout(layoutkind.explicit)> _

structure test

<fieldoffset(0)>dim red as byte

<fieldoffset(1)>dim green as byte

<fieldoffset(2)>dim blue as byte

<fieldoffset(3)>dim alpha as byte

<fieldoffset(0)>dim value as integer

end structure



則這些元素在內存中的位置,如圖:






這樣就可以通過value 字段將4個字節作為一個整體進行訪問。



'拆分

dim rgb as test

rgb.value=&h112233 '1122867

console.write("red={0},green={1},blue={2}",rgb.red,rgb.green,rgb.blue)



輸出如:








‘合并

rgb.red=51

rgb.green=34

rgb.blue=17

console.write(rgb.value)

輸出如:










這樣就可以解決很多轉換的工作,而且比使用數學運算符更快!




上一篇:利用VB.NET訪問注冊表

下一篇:VB.NET特性

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东阳市| 五河县| 尼玛县| 文成县| 呼伦贝尔市| 临夏县| 河北区| 甘肃省| 原平市| 平湖市| 马公市| 盐源县| 马尔康县| 永寿县| 昭通市| 政和县| 馆陶县| 拜城县| 镇江市| 金沙县| 南宫市| 津南区| 普定县| 罗平县| 象山县| 金川县| 德阳市| 类乌齐县| 文安县| 二连浩特市| 商洛市| 大理市| 百色市| 舞钢市| 岑巩县| 鹤山市| 镇雄县| 乌拉特后旗| 中山市| 三河市| 远安县|