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