c# - 嵌套类构造函数的可见性

标签 c# constructor visibility nested-class

有没有办法限制C#中嵌套类的实例化?我想防止嵌套类从嵌套类以外的任何其他类实例化,但要允许从其他代码完全访问嵌套类。

最佳答案

通常我会为您想要向其他类公开的功能创建一个接口(interface),然后将嵌套类设为私有(private)并实现该接口(interface)。这样嵌套类定义就可以保持隐藏状态:

public class Outer
{
    private class Nested : IFace
    {
        public Nested(...)
        {
        }
        //interface member implementations...
    }

    public IFace GetNested()
    {
        return new Nested();
    }
}

关于c# - 嵌套类构造函数的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2736827/

相关文章:

c# - 测量扩展方法的性能。这是正确的吗?

c# - 使用 jquery 在 html 表中显示来自模型(字典)的数据

c++ - 从构造函数中抛出异常

wpf - 在鼠标悬停时更改 DataGrid ScrollBar 的可见性?

c# - 文件是否可读(包含文本而不是可访问的)

c# - 我应该使用 Visual Studio 中的哪种类型的项目来创建 "hidden"实用程序?

2d - GameMaker 2D 可见性

android - 隐藏单选按钮图标但不隐藏文本

java - 使用 Intellij 在 Java 中重构构造函数

java - 抽象类构造函数实际使用