是否可以拥有一个公共的嵌套类,但只能由它的父类实例化 例如
public class parent
{
public class child
{
public string someValue;
}
public child getChild()
{
return new child();
}
}
在这个例子中,'child'类可以通过'parent'外部的代码实例化。我希望外部代码能够查看“子”类型,但不能构建它自己的类型。
e.g
var someChild = new parent.child();
答案 0 :(得分:14)
getChild
方法创建一个新子节点并返回接口类型。正如评论和其他答案中所提到的,您还可以将内部类的构造函数上的访问修饰符更改为内部或私有,同时将内部类本身公开。
答案 1 :(得分:4)
定义内部空构造函数
public class child
{
internal child() {}
public string someValue;
}
答案 2 :(得分:2)
您可以通过将构造函数(子类的保护级别)设置为internal
来将创建限制为程序集。
或@Servy告诉界面。