这个问题是以下问题的延续: 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意味着它只能从该类中调用(通常通过静态工厂方法)。
您可以声明OutputClassas的构造函数private,假设该类中有某种机制可以创建实例。否则,internal修饰符可能更合适。
class OutputClass
{
private OutputClass()
{
// inaccessible to anything but OutputClass methods
}
}