读书人

C#创建文件怎么确定类结构的buffsizi

发布时间: 2013-01-25 15:55:29 作者: rapoo

C#创建文件,如何确定类结构的buffsizi?


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace Console_File
{
class Program
{
static void Main(string[] args)
{
Info o = new Info();
int buff_size = 0;
int a = Marshal.SizeOf(o.A);
int b = Marshal.SizeOf(o.B);
int c = Marshal.SizeOf(o.C);
int d = SizeOf(bool);
buff_size = a + b + c;
Console.WriteLine("int Marshal.SizeOf:" + a);
Console.WriteLine("bool Marshal.SizeOf:" + b);
Console.WriteLine(c);
Console.WriteLine(buff_size);
Console.WriteLine("bool SizeOf:" + d);
// 要用此方法创建文件
//FileStream fs = new FileStream(filename, mode, access, share, 1, options);
Console.Read();
}

private class Info
{
public int A;
public bool B;
public Object C;
}
}
}

现在的问题是,这个类中有Object,这个是不能确定大小的,因为要写入文本,这个类的大小如何确定?
还有就是,Marshal.SizeOf 和 SizeOf 的区别是什么,为什么同样是bool类型,一个大小是4,一个大小是1 ?
请教各位老师多多指点。 c#?类中有Object大小问题
[解决办法]
你最好增加一个字段,标识后面字段的长度
[解决办法]
Marshal.SizeOf对应的是非托管类型的大小,由于非托管代码内存对齐的关系,因此Marshal.SizeOf bool类型显示的是4个字节

读书人网 >C#

热点推荐