2011-07-21 75 views
1

如果我的類是私人的,構造函數是公共的,那麼會發生什麼。我可以創建該類或其他類的實例嗎?我只需要知道爲什麼以及何時人們用公共場所創建私人課程?關於OOPS和私人類

private class LazyResource 
{ 
    SomeBigResource _heavyObject = null; 

    public SomeBigResource LazyLoad 
    { 
     get 
     { 
      if (_heavyObject == null) 
       _heavyObject = new SomeBigResource(); 
      return _heavyObject; 
     } 
    } 
} 

代碼plzz引導我感謝

+0

是的,意識到約3秒後評論,從而刪除。 * shamefaced * –

回答

3

您不能創建在C#非嵌套私有類。

這幾乎可以肯定是一個嵌套類,在這種情況下,只有包含類型可以實例化它的一個實例。如果LazyResource只有一個私有構造函數,那麼沒有東西可以實例化它(除了自己的一個靜態成員本身)。

+2

「只有一個私有構造函數,那麼什麼都不能實例化它」。除非它有一個公共靜態成員給你一個類的實例,就像Singleton模式的一些實現一樣。 – mbeckish

+1

@mbeckish:沒錯,我想在這種情況下*有些東西*會實例化它(即它本身)。編輯澄清... – LukeH

+0

如何創建屬性LazyLoad? – Mou