C#构造函数关键字可以是public,也可以是private吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#构造函数关键字可以是public,也可以是private吗?相关的知识,希望对你有一定的参考价值。
一般情况下使用的是public。如果有特殊要求的情况下,可能使用private修饰。
如果一般常见的单例模式:
public class Singltonprivate static Singleton _Instance;
provate static readonly object syslocker = new object();
//私有化构造函数
private Sinalton()
public static Singlton GetInstance()
if(_Instance == null)
lock(syslocker)
if(_Instance == null)
_Instance = new Singlton();
return _Instance;
这种形式就必须使用private将构造私有化,然后通过GetInstance()方法获得实例。这样能保存生成的实例是单一的。不允许用户使用构造函数重新构造。
不管怎么说,虽然我们可以对实例进行私有化,但必须有其他的静态方法来获得实例。如果不通过静态方法或静态属性来获得得实例,那么这么类就没有存在的必要了。
所以虽然可以私有化构造函数,但一般要因为对生成有一定的控制,否则最好还是使用public。或使用默认生成的。[不写构造函数时,编译器会默认编译一个]
参考技术A 可以,但private的话就不能用new来创建这个类的对象了,当然在这个类内部还是可以new的本回答被提问者采纳 参考技术B 不可以,只能用publicJava 构造函数
构造方法要可以用public, protected, private修饰,不可以有返回值,方法名与类名一致。
1.构造函数必须是public
2.构造函数必须是无返回值的,void也不行
3.构造函数必须是和类名一直的,方法名不按照小驼峰的规则
4.参数列表不同,可以构造多个构造方法,是方法的重载
例:
在如下所示的类Test中,共有()个构造方法。
public class Test private int x; public Test() x = 35; public void Test(double f) this.x = (int)f; public Test(double f) this.x = (int)f; public Test(String s)
答案:3个
以上是关于C#构造函数关键字可以是public,也可以是private吗?的主要内容,如果未能解决你的问题,请参考以下文章