博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
私有构造函数(C# 编程指南)
阅读量:5037 次
发布时间:2019-06-12

本文共 1249 字,大约阅读时间需要 4 分钟。

私有构造函数是一种特殊的实例构造函数。它通常用在只包含静态成员的类中。如果类具有一个或多个私有构造函数而没有公共构造函数,则其他类(除嵌套类外)无法创建该类的实例。例如:

C#
 
class NLog{    // Private Constructor:    private NLog() { }    public static double e = Math.E;  //2.71828...}

声明空构造函数可阻止自动生成默认构造函数。注意,如果您不对构造函数使用访问修饰符,则在默认情况下它仍为私有构造函数。但是,通常显式地使用  修饰符来清楚地表明该类不能被实例化。

当没有实例字段或实例方法(如  类)时或者当调用方法以获得类的实例时,私有构造函数可用于阻止创建类的实例。如果类中的所有方法都是静态的,可考虑使整个类成为静态的。有关更多信息,请参见。

下面是使用私有构造函数的类的示例。

C#
 
public class Counter{    private Counter() { }    public static int currentCount;    public static int IncrementCount()    {        return ++currentCount;    }}class TestCounter{    static void Main()    {        // If you uncomment the following statement, it will generate        // an error because the constructor is inaccessible:        // Counter aCounter = new Counter();   // Error        Counter.currentCount = 100;        Counter.IncrementCount();        Console.WriteLine("New count: {0}", Counter.currentCount);        // Keep the console window open in debug mode.        Console.WriteLine("Press any key to exit.");        Console.ReadKey();    }}// Output: New count: 101

注意,如果您取消注释该示例中的以下语句,它将生成一个错误,因为该构造函数受其保护级别的限制而不可访问:

C#
 
// Counter aCounter = new Counter();   // Error

转载于:https://www.cnblogs.com/huibin-benteng/p/5045206.html

你可能感兴趣的文章
IIS的各种身份验证详细测试
查看>>
JavaScript特效源码(3、菜单特效)
查看>>
聊聊、Zookeeper Linux 单服务
查看>>
Linux常用命令总结
查看>>
KRPano动态热点专用素材图50多个,加动态热点使用方法
查看>>
yii模型ar中备忘
查看>>
C#线程入门
查看>>
CSS清除浮动方法
查看>>
JVM内存回收机制简述
查看>>
洛咕 P2480 [SDOI2010]古代猪文
查看>>
js-创建对象的几种方式
查看>>
JDK JRE Java虚拟机的关系
查看>>
2018.11.20
查看>>
word20161215
查看>>
12th week blog
查看>>
dijkstra (模板)
查看>>
python小记(3)
查看>>
编译Linux驱动程序 遇到的问题
查看>>
大型分布式网站架构技术总结
查看>>
HDU 1017[A Mathematical Curiosity]暴力,格式
查看>>