如何获得处理上包裹

问题描述:

如果我有包装另一个类,即:如何获得处理上包裹

public class NoWrap 
{ 
    internal sealed class Wrapped 
    { //Constructor here 
    } 
} 

我怎样才能得到一个手柄从NoWrap类里面的Wrapped类的实例?

Wrapped类的实例只有在明确创建时才会显示。当创建NoWrap时,它不会自动开始存在。例如:

public class NoWrap 
{ 
    internal sealed class Wrapped 
    { 
    } 

    public void Wrap() 
    { 
     this.wrapped = new Wrapped(); 
    } 

    internal Wrapped GetWrapped()  //note: cannot be public 
    { 
     return wrapped; 
    } 

    private Wrapped wrapped; 
} 

//... 

NoWrap nw = new NoWrap(); // (*) 

nw.Wrap();     // (**) 

在标有点(*)的NoWrap一个实例存在,并且没有的Wrapped实例。只有在(**)中调用Wrap之后,才会创建一个Wrapped的实例,并且您是否有引用的事实完全取决于您 - 即您必须将其分配给某个变量/字段/属性。

使用它NoWrap类的外部:

NoWrap.Wrapped x = nw.GetWrapped();