對于整Socket網(wǎng)絡通訊的人來說,packet這玩意一定不會陌生.但是要知道此類的字段字節(jié)總數(shù),使用Marshal.SizeOf,無疑是一個非常好的選擇.這樣可以大大節(jié)省你計算字節(jié)數(shù)的時間.

使用方法:Marshal.SizeOf( packet實例 )
using System;
using System.Runtime.InteropServices;
using CMD.com;
namespace CMD
{
public class Program
{
static void Main(string[] args)
{
Myttee my = new Myttee();
my.bcc = 2;
Console.WriteLine(Marshal.SizeOf(my));
Console.Read();
}
}
}關(guān)于 Myttee:
//=====================================================================
//
// All right reserved
// filename : Myttee
// description :
//
// create by User at 2016/8/11 13:48:31
//=====================================================================
using System.Runtime.InteropServices;
namespace CMD.com
{
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
internal struct Myttee
{
public ushort wcc;
public ushort bcc;
private ushort ccc;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
public char[] MachineID;
public void Init()
{
this.ccc = 10;
this.MachineID = new char[] {'1', '2', '3'};
}
public ushort MKK
{
get { return 1; }
}
}
}
其結(jié)果為26 . 3個ushort + 10個unicode字符 = 3X2 + 10X2 = 26
當然 : 如果沒有 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] 特性
則使用Marshal.SizeOf就是一個坑 , 誰知道String占多少字節(jié)???
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。
名稱欄目:C#Marshal.SizeOf-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://www.chinadenli.net/article16/iidgg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設、自適應網(wǎng)站、小程序開發(fā)、App設計、微信小程序、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容