欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么分析.NET中的聯(lián)合結(jié)構(gòu)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)怎么分析.NET中的聯(lián)合結(jié)構(gòu),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、怒江州網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、怒江州網(wǎng)絡(luò)營銷、怒江州企業(yè)策劃、怒江州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供怒江州建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:aaarwkj.com

下面介紹.NET中的聯(lián)合結(jié)構(gòu)。

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

這個(gè)意思你可以理解為:聯(lián)合體中的所有數(shù)據(jù)都是引用一個(gè)內(nèi)存塊中相同地址的數(shù)據(jù),當(dāng)我們改變這個(gè)聯(lián)合體內(nèi)任何一種數(shù)據(jù)的值時(shí),其他的數(shù)據(jù)的值都會隨之改變。

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

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

這需要用到結(jié)構(gòu)屬性!

讓我們看看如何將下面的C++聯(lián)合體代碼轉(zhuǎn)換為一個(gè)VB.NET的聯(lián)合結(jié)構(gòu)吧!

union myunion   {   char b; //單字節(jié)整數(shù),在c語言中用char類型來表示單字節(jié)整數(shù)   short s; //雙字節(jié)整數(shù) www.liuhebao.com   int i; //四字節(jié)整數(shù)   }

這個(gè)聯(lián)合體大小為4個(gè)字節(jié),其各個(gè)數(shù)據(jù)分別表示為單字節(jié)、雙字節(jié)、四字節(jié)的整數(shù),在運(yùn)行期間其任何數(shù)據(jù)的改變都會影響其他數(shù)據(jù)。

Improts System.Runtime.InteropServices '引入運(yùn)行時(shí)非托管數(shù)據(jù)管理服務(wù)

引入結(jié)構(gòu)屬性,精確控制結(jié)構(gòu)中元素的位置

<StructLayout(LayoutKind.Explicit)> _   Structure MyUnion   ' 設(shè)置字段的偏移值,設(shè)為0即可   <FieldOffset(0)> Dim b As Byte '單字節(jié)整數(shù)   <FieldOffset(0)> Dim s As Short '雙字節(jié)整數(shù)   <FieldOffset(0)> Dim i As Integer '四字節(jié)整數(shù)   End Structure www.yzyedu.com

這就是在.NET中設(shè)置聯(lián)合結(jié)構(gòu)的方法,C#中于VB.NET中的設(shè)置方法雷同,這里就不做贅述了。

下面來介紹聯(lián)合體的特性應(yīng)用,就以上面我們剛才聲名的聯(lián)合體結(jié)構(gòu)為例,下面的代碼將為我們演示聯(lián)合體的特性:

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

上面的代碼可以更直觀地顯示數(shù)據(jù)在內(nèi)存中的變化,每當(dāng)改變聯(lián)合數(shù)據(jù)時(shí),其他的數(shù)據(jù)也會隨著內(nèi)存的變化而變化。

當(dāng)然,使用聯(lián)合體也有限制,那就是.NET的聯(lián)合體只適用于值類型,無法應(yīng)用在引用類型和指針中,你無法設(shè)置字符串(String)或是數(shù)組進(jìn)入聯(lián)合類型,這一點(diǎn)需要非常的注意!

當(dāng)然,.NEt中的聯(lián)合結(jié)構(gòu)體并不只有上面的用法,你可以發(fā)揮自己的想象力,比如可以:

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

這個(gè)結(jié)構(gòu)可以獲取一個(gè)有或無符號的四個(gè)字節(jié)整數(shù)每一個(gè)字節(jié)的數(shù)據(jù),而不需要自己寫算法來分析了。

測試代碼:

Code:

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

上述就是小編為大家分享的怎么分析.NET中的聯(lián)合結(jié)構(gòu)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站欄目:怎么分析.NET中的聯(lián)合結(jié)構(gòu)
鏈接分享:http://aaarwkj.com/article30/igjoso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、搜索引擎優(yōu)化、網(wǎng)站建設(shè)標(biāo)簽優(yōu)化、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
男人av天堂手机在线| 日韩黄色一级片在线观看| 国产在线拍揄自揄视频不卡99| 亚洲啪啪av一区二区三区| 97在线亚洲欧美视频| 日本道欧美一区二区aaaa| 亚洲国产精品一区二区成人| 日日干天天日夜夜操| 日韩精品色av一区二区| 亚洲欧美日韩综合一区| 亚洲男人天堂最新地址| 国产一区二区传媒视频| 久久99久久久久久精品| 国产专区亚洲精品欧美| 高清一区高清二区高清三区| 国产男生午夜福利网站| 国产日韩欧美另类综合| 风间由美亚洲一区二区三区| 色呦呦一区二区三区视频| 午夜精品国产日韩欧美在线| 国产欧美精品久久三级| 又爽又色的日本网站| 免费国产黄片在线播放| 97视频在线观看观看| 久久精品国产精品亚洲片| 国产在线精品成人欧美| 成年人在线观看免费观看| 日韩国产人妻一区二区 | 欧美亚洲精品在线观看| 欧美大片免费高清观看| 国产女同互慰一区二区| 特级艳片在线观看免费| av中文字幕在线激情| 精品久久av一区二区三区| 六十路人妻一区二区三区| 国产免费不卡午夜福利在线| 伊人99热这里只有精品| 国产精品一区二区高潮| 亚洲毛片一区二区在线| 大陆av剧情网站在线观看| av黄色天堂在线观看|