0

这个问题是以下问题的延续: Basic OOPs related query

如何确保OutputClass只能在同一文件(api.cs)中创建对象,即

OutputClass object1 = new ObjectClass(3);

而 API 的用户应该不能为这个类创建一个新的存储,而只能在 API 提供它时引用它,即 API 的用户应该只能执行以下操作:

OutputClass object1

而如果他试图创建一个新的 ObjectClass,那应该是不可能的。

4

2 回答 2

3

您可以制作构造函数internalprivate

public class OutputClass
{
    internal OutputClass()
    {
    }
}

internal意味着它可以从同一程序集中的任何类(不仅仅是 .CS 文件)中调用。 private意味着它只能从该类中调用(通常通过静态工厂方法)。

于 2013-10-17T21:32:44.557 回答
1

您可以声明OutputClassas的构造函数private,假设该类中有某种机制可以创建实例。否则,internal修饰符可能更合适。

class OutputClass
{
    private OutputClass()
    {
        // inaccessible to anything but OutputClass methods
    }
  }
于 2013-10-17T21:32:19.943 回答