国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ASP.NET私有構造函數作用

2019-11-17 01:51:20
字體:
來源:轉載
供稿:網友

asp.net私有構造函數作用

一、私有構造函數的特性

1、一般構造函數不是私有或者保護成員,但構造函數可以使私有成員函數,在一些特殊的場合,會把構造函數定義為私有或者保護成員。

2、私有構造函數是一種特殊的實例構造函數。它通常用在只包含靜態成員的類中。如果類具有一個或多個私有構造函數而沒有公共構造函數,則不允許其他類(除了嵌套類)創建該類的實例。

3、私有構造函數的特性也可以用于管理對象的創建。雖然私有構造函數不允許外部方法實例化這個類,但卻允許此類中的公共方法(有時也稱為工廠方法,factory method)創建對象。也就是說,類可以創建自身的實例、控制外界對它的訪問,以及控制創建的實例個數

二、私有構造函數作用實例說明

1、帶私有構造函數的類不能被繼承

在Animal類中聲明一個私有構造函數,讓Dog類來繼承Animal類。

C# 代碼 復制
    public class Animal   {     PRivate Animal()     {       Console.WriteLine("i am animal");     }   }   public class Dog : Animal  {        } 

運行程序,生成解決方案,報錯如下圖所示:

2、帶私有構造函數的類不能被實例化

運行如下測試代碼:

C# 代碼 復制
    class Program   {     static void Main(string[] args)     {       Animal animal = new Animal();     }   }   public class Animal   {     private Animal()     {       Console.WriteLine("i am animal");     }   } 

程序運行后生成解決方案,報錯如下圖所示:

三、私有構造函數的應用

有些時候,我們不希望一個類被過多地被實例化,比如有關全局的類、路由類等。這時候,我們可以為類設置構造函數并提供靜態方法。

C# 代碼 復制
  public class PrivateConClass{    private static PrivateConClass pcc;    private PrivateConClass()    {        Console.WriteLine("This private constructure function. So you cannot create an instance of this class.");    }    public static PrivateConClass CreatePcc()    {        pcc = new PrivateConClass();        return pcc;    }    public static void ShowStaticMethod()    {        Console.WriteLine("This is a static method. Just be called by Class name.");    }    public void ShowMethod()    {        Console.WriteLine("This is a Nonstatic method. Just be called by private static instance pcc.");    }}class Program{    static void Main(string[] args)    {            PrivateConClass pcc = PrivateConClass.CreatePcc();        pcc.ShowMethod();        PrivateConClass.ShowStaticMethod();    }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克东县| 英山县| 三原县| 和林格尔县| 车致| 巴青县| 铜鼓县| 临桂县| 惠安县| 乌海市| 凤庆县| 泗阳县| 阿鲁科尔沁旗| 山西省| 大化| 彩票| 土默特右旗| 漳州市| 兴化市| 霍州市| 确山县| 宜兴市| 神农架林区| 海伦市| 霍林郭勒市| 留坝县| 白水县| 邻水| 桦甸市| 榆中县| 广德县| 松潘县| 长沙市| 阳西县| 托克逊县| 博爱县| 吴江市| 白银市| 威远县| 阜宁县| 阿图什市|