c#是否有内部类额外开销?

c#是否有内部类额外开销?,c#,.net,C#,.net,我有以下简单的类: class Stack { public class Node // inner class { string item; Node next; } } 包含N项的堆栈使用:8字节(引用字符串)+8字节(引用节点)+16字节(同步块索引+类型对象指针)。但我想知道内部类开销。我是否需要添加额外的8字节?因此,包含N个项的堆栈使用~40*N字节或~32*N字节?C#内部类没有对外部类实例的隐藏引用,就像Java那样。如果需要该行为,可以手动

我有以下简单的类:

class Stack {
  public class Node // inner class
  {
      string item;
      Node next;
  }
}
包含
N
项的堆栈使用:
8字节(引用字符串)
+
8字节(引用节点)
+
16字节(同步块索引+类型对象指针)
。但我想知道内部类开销。我是否需要添加额外的
8字节
?因此,包含N个项的堆栈使用~40*N字节或~32*N字节?

C#内部类没有对外部类实例的隐藏引用,就像
Java
那样。如果需要该行为,可以手动创建它。在C#中没有这样的东西


内部类主要具有不同的访问规则和不同结构的名称。此外,内部类共享外部类的泛型类型参数,这可能会产生开销。它主要是一个组织概念(用C#表示)。

“内部类开销”?你这是什么意思?额外的8个字节代表什么?不,您不需要,因为您已经有了对下一个节点的引用(x64应用程序中的8个字节和fox x86应用程序中的4个字节)。正如我所知,在Java内部类中有额外的开销(+8个字节)。对,因此
节点
包含另一个
节点
。我没有注意到这一点。。也许让它更明显?