C#构造函数关键字可以是public,也可以是private吗?

 我来答
百度网友66a8d48e5
2013-05-06 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3898万
展开全部

一般情况下使用的是public。如果有特殊要求的情况下,可能使用private修饰。

 

如果一般常见的单例模式:

public class Singlton
{
private 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。或使用默认生成的。[不写构造函数时,编译器会默认编译一个]

匿名用户
2013-05-06
展开全部
可以,但private的话就不能用new来创建这个类的对象了,当然在这个类内部还是可以new的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a87cc15
2013-05-06 · 超过20用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:34.2万
展开全部
不可以,只能用public
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式