类只能在同一个文件中创建,其他用户只能引用它

时间:2013-10-17 21:28:32

标签: c#

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

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

OutputClass object1 = new ObjectClass(3);

API的用户不应该为此类创建新的存储,而只能在从API提供时引用它,即API的用户应该只能执行以下内容:

OutputClass object1

而如果他试图创建一个新的ObjectClass,那就不可能了。

2 个答案:

答案 0 :(得分:3)

您可以制作构造函数internalprivate

public class OutputClass
{
    internal OutputClass()
    {
    }
}

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

答案 1 :(得分:1)

您可以将OutputClass的构造函数声明为private,假设该类中有一些机制来创建实例。否则,internal修饰符可能更合适。

class OutputClass
{
    private OutputClass()
    {
        // inaccessible to anything but OutputClass methods
    }
  }