小编典典

如何检查结构消耗的字节数?

c#

如果我要创建一个相对较大的结构,该如何计算它在内存中占用的字节?

我们可以手动完成,但是如果结构足够大,该如何做呢?是否有一些代码块或应用程序?


阅读 246

收藏
2020-05-19

共1个答案

小编典典

您可以使用sizeof运算符或SizeOf函数。
这些选项之间有一些差异,请参阅参考链接。

无论如何,使用该函数的一种好方法是拥有一个通用方法或扩展方法,如下所示:

static class Test
{
  static void Main()
  {
    //This will return the memory usage size for type Int32:
    int size = SizeOf<Int32>();

    //This will return the memory usage size of the variable 'size':
    //Both lines are basically equal, the first one makes use of ex. methods
    size = size.GetSize();
    size = GetSize(size);
  }

  public static int SizeOf<T>()
  {
    return System.Runtime.InteropServices.Marshal.SizeOf(typeof(T));
  }

  public static int GetSize(this object obj)
  {
    return System.Runtime.InteropServices.Marshal.SizeOf(obj);
  }
}
2020-05-19