相关疑难解决方法(0)

Int16 - 在.NET中的容量?

为什么 :

short a=0;
Console.Write(Marshal.SizeOf(a));
Run Code Online (Sandbox Code Playgroud)

节目 2

但如果我看到IL代码,我看到:

/*1*/   IL_0000:  ldc.i4.0    
/*2*/   IL_0001:  stloc.0     
/*3*/   IL_0002:  ldloc.0     
/*4*/   IL_0003:  box         System.Int16
/*5*/   IL_0008:  call        System.Runtime.InteropServices.Marshal.SizeOf
/*6*/   IL_000D:  call        System.Console.Write
Run Code Online (Sandbox Code Playgroud)

第1行的LDC表明:

将0作为int32推入堆栈.

所以必须4占用字节数.

sizeOf显示2字节...

我在这里错过了什么?短片实际上占用了多少字节?

我听说有一个填充到4个字节的情况,所以处理起来会更快.是这样的吗?

(请忽略syncRoot和GC根标志字节,我只是询问2对4)

.net c# byte short

6
推荐指数
2
解决办法
864
查看次数

标签 统计

.net ×1

byte ×1

c# ×1

short ×1