国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

探討.NET中的聯合結構

開發 后端
本文介紹的是.NET中的聯合結構,希望對你有幫助,一起來看。

關于.NET中的聯合結構,我們也探討過。下面介紹.NET中的聯合結構。

在進行某些算法的C語言編程的時候,需要使幾種不同類型的變量存放到同一段內存單元中。也就是使用覆蓋技術,幾個變量互相覆蓋。這種幾個不同的變量共同占用一段內存的結構,在C語言中,被稱作“共用體”類型結構,簡稱共用體,也叫聯合體
在C++中有一種類型叫做聯合體(也叫共用體),它的關鍵字為union,在使用上與結構struct非常相似,可以包含任何的結構類型數據,但它又有一個非常獨特的特性,那就是所有的數據都指向一個地址。

這個意思你可以理解為:聯合體中的所有數據都是引用一個內存塊中相同地址的數據,當我們改變這個聯合體內任何一種數據的值時,其他的數據的值都會隨之改變。

這對于未知類型的數據非常有效,你可以使用聯合體裝載一個數據,然后分析其數據是否有效,或者可以對某些特殊的類型進行位運算,獲取其特殊位置的數值。 www.yzjxsp.com

但在VB.NET或C#中,根本沒有union關鍵字讓我們聲名聯合體,但該怎么做才能聲名聯合體呢?

這需要用到結構屬性!

讓我們看看如何將下面的C++聯合體代碼轉換為一個VB.NET的聯合結構吧!

  1. union myunion   
  2. {   
  3. char b; //單字節整數,在c語言中用char類型來表示單字節整數   
  4. short s; //雙字節整數 www.liuhebao.com   
  5. int i; //四字節整數   
  6. }  

這個聯合體大小為4個字節,其各個數據分別表示為單字節、雙字節、四字節的整數,在運行期間其任何數據的改變都會影響其他數據。

Improts System.Runtime.InteropServices '引入運行時非托管數據管理服務 

引入結構屬性,精確控制結構中元素的位置

  1. <StructLayout(LayoutKind.Explicit)> _   
  2. Structure MyUnion   
  3. ' 設置字段的偏移值,設為0即可   
  4. <FieldOffset(0)> Dim b As Byte '單字節整數   
  5. <FieldOffset(0)> Dim s As Short '雙字節整數   
  6. <FieldOffset(0)> Dim i As Integer '四字節整數   
  7. End Structure www.yzyedu.com  

這就是在.NET中設置聯合結構的方法,C#中于VB.NET中的設置方法雷同,這里就不做贅述了。

下面來介紹聯合體的特性應用,就以上面我們剛才聲名的聯合體結構為例,下面的代碼將為我們演示聯合體的特性:

  1. Dim MU As New MyUnion   
  2. MsgBox(String.Format("{0} {1} {2}", MU.b, MU.s, MU.i)) '0 0 0   
  3. MU.s = Int16.MaxValue   
  4. MsgBox(String.Format("{0} {1} {2}", MU.b, MU.s, MU.i)) '255 32767 32767   
  5. MU.b = 12   
  6. MsgBox(String.Format("{0} {1} {2}", MU.b, MU.s, MU.i)) '12 32524 32524   
  7. MU.i = 0   
  8. MsgBox(String.Format("{0} {1} {2}", MU.b, MU.s, MU.i)) '0 0 0  

上面的代碼可以更直觀地顯示數據在內存中的變化,每當改變聯合數據時,其他的數據也會隨著內存的變化而變化。

當然,使用聯合體也有限制,那就是.NET的聯合體只適用于值類型,無法應用在引用類型和指針中,你無法設置字符串(String)或是數組進入聯合類型,這一點需要非常的注意!

當然,.NEt中的聯合結構體并不只有上面的用法,你可以發揮自己的想象力,比如可以:

  1. <StructLayout(LayoutKind.Explicit)> _   
  2. Structure MyUnion2 www.jokedu.com   
  3. <FieldOffset(0)> Dim b1 As Byte   
  4. <FieldOffset(1)> Dim b2 As Byte   
  5. <FieldOffset(2)> Dim b3 As Byte   
  6. <FieldOffset(3)> Dim b4 As Byte   
  7. <FieldOffset(0)> Dim i As Integer   
  8. <FieldOffset(0)> Dim ui As UInteger   
  9. End Structure  

這個結構可以獲取一個有或無符號的四個字節整數每一個字節的數據,而不需要自己寫算法來分析了。

測試代碼:

Code:

  1. Dim MU As MyUnion2   
  2. MsgBox(MU.i & " : " & MU.ui) '0 : 0   
  3. MsgBox(String.Format("{0} {1} {2} {3}", Hex(MU.b1), Hex(MU.b2), Hex(MU.b3), Hex(MU.b4))) '0 0 0 0   
  4. MU.b1 = 255 : MU.b2 = 255 : MU.b3 = 255 : MU.b4 = 255   
  5. MsgBox(String.Format("{0} {1} {2} {3}", Hex(MU.b1), Hex(MU.b2), Hex(MU.b3), Hex(MU.b4))) 
  6. 'FF FF FF FF   
  7. MsgBox(MU.i & " : " & MU.ui) '-1 : 4294967295  

希望通過本文對.net中聯合結構的介紹,能夠給你帶來幫助。

責任編輯:于鐵 來源: 博客園
相關推薦

2011-06-11 22:09:06

NET聯合體

2010-06-18 09:23:33

SortedSet.NET 4

2009-07-28 09:42:22

.NET數據訪問層

2010-07-12 09:07:30

C#

2011-03-16 08:59:29

.NET強名稱

2009-08-13 16:57:37

.NET緩存機制

2010-09-08 09:49:28

藍牙協議棧

2009-03-13 09:31:03

.NET整合分布式應用

2009-05-11 13:48:00

ASP.NET 2.0緩存效率

2010-01-19 18:24:29

VB.NET調用Win

2010-04-16 16:41:53

rownum用法

2009-07-30 13:07:49

ASP.NET中的三層

2024-01-26 06:42:05

Redis數據結構

2009-11-04 11:32:20

VB.NET回調函數

2009-10-30 16:31:55

VB.NET重載方法

2022-01-12 08:30:55

結構體指針STM32

2010-02-01 10:30:13

Python世界

2020-05-08 16:09:23

索引B+樹存儲

2009-07-30 13:30:56

ASP.NET開發模式

2009-12-28 15:11:36

ADO.NET專家
點贊
收藏

51CTO技術棧公眾號

在线播放蜜桃麻豆| 成人豆花视频| 国产精品国产三级国产aⅴ入口 | 精品视频在线观看日韩| 在线观看av影片| 亚洲综合一二区| 国产对白国语对白| 91欧美激情一区二区三区成人| 亚洲日本精品国产第一区| 外国成人免费视频| 亚洲aa中文字幕| 久久av电影| 欧美性资源免费| 欧洲亚洲成人| 欧美诱惑福利视频| 国产欧美日韩在线观看视频| 久久免费精品日本久久中文字幕| 日韩国产一二三区| 久久五月天色综合| 国产一区二区av在线| 九九九久久久久久| 欧美男人操女人视频| 青青草一区二区| 欧美在线免费看视频| 成人日韩在线电影| 亚洲夜间福利| 欧美国产综合视频| 视频一区二区三区入口| 热这里只有精品| 99re66热这里只有精品3直播 | 亚洲专区在线| 茄子视频成人在线观看 | 国产精品久久三| 毛片.com| 欧美色视频在线观看| 亚洲91av| 日韩资源在线观看| 亚洲动漫精品| 99久久99久久| 久久综合婷婷| 成熟丰满熟妇高潮xxxxx视频| av电影天堂一区二区在线观看| 乱子伦视频在线看| 亚洲成人精品在线观看| 国产精品扒开做爽爽爽的视频 | 肉肉视频在线观看| 中文字幕一精品亚洲无线一区 | 久久精品国亚洲| 伊人成综合网yiren22| 91精品国产综合久久久久久蜜臀 | 国产精品13p| 不卡毛片在线看| 综合干狼人综合首页| 91gao视频| 国产乱淫av一区二区三区| 免费在线观看毛片网站| 亚洲一区二区在线免费观看视频| 77777影视视频在线观看| 亚洲成人aaa| 麻豆国产欧美一区二区三区r| 高清国产一区| 波多野结衣中文字幕一区| 制服丝袜中文字幕在线观看| 欧美精品免费视频| 国产一区二区高清在线| 爱情岛论坛亚洲入口| 国产宾馆实践打屁股91| 在线观看免费av网| 有码中文亚洲精品| 在线成人直播| 男人添女荫道口图片| 色综合天天综合网天天看片| 视频二区不卡| 91影院在线免费观看视频| 国产成人小视频| 欧美美乳在线| 欧美大片网站在线观看| 亚洲在线黄色| 女人被爽到呻吟gif动态图下载| 亚洲国产97在线精品一区| 禁果av一区二区三区| 国产日韩第一页| 日韩人体视频一二区| 欧美影院精品| 亚洲精品一区国产精品| 亚洲成人福利片| 精品美女一区| 欧洲久久久久久| 亚洲午夜久久久久久久久久久| 456亚洲精品成人影院| 成人片在线免费看| 成人免费一区二区三区视频 | 五月精品视频| 国产三级日本三级在线播放| 91精品国产色综合久久不卡电影 | 成人三级在线视频| 日本黄色片在线观看| 97超级碰碰人国产在线观看| 国产一区在线精品| fc2在线中文字幕| 欧美一区深夜视频| 波多野结衣中文字幕一区二区三区| 国产视频精品久久| 奇米影视亚洲狠狠色| 成人午夜视频在线观看| av网站大全在线| 成人免费网站在线观看| 中文字幕在线一区二区三区| 久久精品女人天堂av免费观看| 国产精品一级久久久| 亚洲手机成人高清视频| 91成人福利社区| 蜜桃视频成人在线观看| 911精品产国品一二三产区| 久久久久国产精品| 992tv在线| 日本人成精品视频在线| 中文字幕精品—区二区四季| 日韩一级特黄| 国产九九九九九| 尤物yw午夜国产精品视频| 极品少妇xxxx精品少妇偷拍| 欧洲不卡av| 精品一区国产| 欧美三级日本三级少妇99| 五月久久久综合一区二区小说| 337p日本| 国产国语刺激对白av不卡| 亚洲精品福利视频网站| 网红女主播少妇精品视频| 牛夜精品久久久久久久| 久久综合久中文字幕青草| 国产成人av电影| 福利一区二区免费视频| 成人黄色大片网站| 精品久久久999| 久久久久久毛片| 成人在线视频中文字幕| 麻豆一区二区三区视频| 2021国产精品视频| 亚洲激情校园春色| 亚洲h色精品| 视频一区二区三区不卡 | 欧美精品91| 91在线视频| 老牛影视免费一区二区| 精品va天堂亚洲国产| 国产一区二区在线电影| 欧美激情三区| 色偷偷福利视频| 午夜精品理论片| 午夜激情一区二区三区| 欧美成人一品| h片在线播放| 国产又粗又长又爽视频| 久久成人这里只有精品| 成人欧美一区二区三区视频网页| 日韩欧美高清在线播放| 伊人免费在线| 中文字幕一区二区三区在线乱码| 亚洲日韩中文字幕| 久久精品视频网| 国产精品国产一区| 亚洲丝袜精品| 男人操女人免费软件| 欧日韩不卡在线视频| 欧美在线观看一二区| 麻豆成人综合网| xvideos.蜜桃一区二区| 日韩a在线观看| 亚洲欧美日韩不卡| 久久久久久香蕉网| 日本高清免费不卡视频| 极品少妇一区二区| 亚洲va久久久噜噜噜久久| 91社区在线观看| 黄色一级片国产| 欧洲成人性视频| 制服.丝袜.亚洲.另类.中文| av中文一区二区三区| 久久国产中文字幕| 中文字幕在线看片| 国精产品999国精产品官网| 久久综合狠狠综合久久综青草| 夜夜嗨av色综合久久久综合网| 中文字幕亚洲在| 日韩电影在线免费看| 欧美顶级毛片在线播放| av在线app| 99热热99| 亚洲精品高清视频| 国产精品白嫩美女在线观看| 精品国产一二三| 亚洲美女在线一区| 免费在线欧美视频| jiujiure精品视频播放| 日韩中文影院| 日本精品在线| 香港经典三级在线| 成年人视频大全|