相关疑难解决方法(0)

在仅包含值类型的自定义结构上使用Marshal.SizeOf()方法

我创建了一个简单的结构,它由两个值类型组成.

public struct Identifier
{
    public Guid ID { get; set; }
    public Byte RequestType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我使用以下语句Marshal.SizeOf()在自定义结构上调用方法Identifier.

Identifier i = new Identifier();
Console.WriteLine(Marshal.SizeOf(i));   // output: 20
Console.WriteLine(Marshal.SizeOf(i.GetType()));   // output: 20
Run Code Online (Sandbox Code Playgroud)

为什么不Marshal.SizeOf()回17?以下指令显示Guid对象为16个字节,字节object为1个字节.

Guid g = Guid.NewGuid();
Console.WriteLine(Marshal.SizeOf(g));   // output: 16
Console.WriteLine(Marshal.SizeOf(g.GetType()));   // output: 16

Byte t = 0;
Console.WriteLine(Marshal.SizeOf(t));   // output: 1
Console.WriteLine(Marshal.SizeOf(t.GetType()));   // output: 1
Run Code Online (Sandbox Code Playgroud)

.net c#

3
推荐指数
1
解决办法
4982
查看次数

标签 统计

.net ×1

c# ×1