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

时间:2016-01-28 10:46:22

标签: c# .net

我有以下简单类:

class Stack {
  public class Node // inner class
  {
      string item;
      Node next;
  }
}

包含N项的堆栈使用:8 bytes (reference to String) + 8 bytes (reference to Node) + 16 bytes (sync block index + type object pointer)。但我想知道内部课程开销。我需要额外添加8 bytes吗?因此,具有N个项目的堆栈使用~40 * N个字节或~32 * N个字节?

1 个答案:

答案 0 :(得分:6)

C#内部类没有像Java这样的外部类的实例的隐藏引用。如果您想要这种行为,可以手动创建。在C#中没有类似的东西。

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