如何获得处理上包裹
问题描述:
类
如果我有包装另一个类,即:如何获得处理上包裹
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();