国产探花免费观看_亚洲丰满少妇自慰呻吟_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特性

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 莱州市| 广东省| 玉山县| 阿拉善左旗| 临漳县| 盘山县| 普宁市| 博乐市| 岳阳县| 中卫市| 沙田区| 玉田县| 库车县| 安国市| 志丹县| 犍为县| 诸暨市| 手游| 舟曲县| 广水市| 黄骅市| 忻城县| 镇赉县| 三穗县| 辽宁省| 舟山市| 嘉禾县| 华蓥市| 松潘县| 洪江市| 平遥县| 福建省| 望城县| 苏尼特右旗| 突泉县| 梁河县| 黄山市| 漯河市| 金溪县| 怀化市| 西乌珠穆沁旗|