2011-10-28 64 views
2

假设我有一个非静态类,里面有2级嵌套类。如何在.NET中实例化类和嵌套类?

public class A 
{ 
    public class B 
    { 
     public class C{} 
    } 
} 

如何创建的实例时,我想创造:

  • 一)主音量类的一个实例(新A())?
  • b)最深层次类(new C())的实例?

这种实现可能导致的性能和内存问题是什么?

谢谢!

+0

“内部2级子类”您的意思是基类有其子类或其他类的成员?此外,标题相当具有误导性,在实际上涉及特定场景时要求提出一般性理论问题。 – BoltClock

+2

如果您展示了一小段示例代码 – Justin

+0

大师班,您会从哪里学到这个术语? –

回答

2

与Java不同,CLR中的嵌套类没有特殊的属性,使其行为不同于在名称空间范围声明的类。布局和分配行为是相同的。它只影响范围。嵌套一个类的唯一好处是你可以把它变成私有的。

+0

谢谢!这就是我要找的。 – Random

+4

嗯,它具有“特殊”访问权限,因为嵌套类是唯一*不同的类,它可以看到外部类的*私有成员*。这有点特别。 (更正式地说:不仅外部类的命名私有成员*在范围内*内部类内部,内部类*在外部类成员的可访问性域*内)。 –