2014-09-28 67 views
0

如果我有包裝另一個類,即:如何獲得處理上包裹

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

我怎樣才能得到一個手柄從NoWrap類裏面的Wrapped類的實例?

回答

0

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();