这个问题是以下问题的延续: Basic OOPs related query
如何确保只能在同一个文件(api.cs)中创建OutputClass
对象,即
OutputClass object1 = new ObjectClass(3);
API的用户不应该为此类创建新的存储,而只能在从API提供时引用它,即API的用户应该只能执行以下内容:
OutputClass object1
而如果他试图创建一个新的ObjectClass,那就不可能了。
答案 0 :(得分:3)
您可以制作构造函数internal
或private
:
public class OutputClass
{
internal OutputClass()
{
}
}
internal
表示可以从同一个程序集中的任何类调用它(而不仅仅是.CS文件)。 private
表示只能从该类中调用它(通常通过静态工厂方法)。
答案 1 :(得分:1)
您可以将OutputClass
的构造函数声明为private
,假设该类中有一些机制来创建实例。否则,internal
修饰符可能更合适。
class OutputClass
{
private OutputClass()
{
// inaccessible to anything but OutputClass methods
}
}