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个字节)。对,因此
节点
包含另一个节点
。我没有注意到这一点。。也许让它更明显?