C#Marshal.SizeOf-创新互联

对于整Socket网络通讯的人来说,packet这玩意一定不会陌生.但是要知道此类的字段字节总数,使用Marshal.SizeOf,无疑是一个非常好的选择.这样可以大大节省你计算字节数的时间.

成都创新互联公司自成立以来,一直致力于为企业提供从网站策划、网站设计、成都做网站、成都网站制作、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。

使用方法: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();
        }
    }
}

关于 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; }
        }
    }
}

C# Marshal.SizeOf

其结果为26 . 3个ushort + 10个unicode字符 = 3X2 + 10X2 = 26

当然 : 如果没有 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] 特性

则使用Marshal.SizeOf就是一个坑 , 谁知道String占多少字节???

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

名称栏目:C#Marshal.SizeOf-创新互联
分享网址:https://www.cdcxhl.com/article16/iidgg.html

成都网站建设公司_创新互联,为您提供手机网站建设自适应网站小程序开发App设计微信小程序虚拟主机

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设