只能由其父类实例化的 c# 公共(public)类

标签 c# oop

是否有可能有一个嵌套类是公共(public)的,但只能由它的父类实例化 例如

 public class parent
{
    public class child
    {
        public string someValue;
    }

    public child getChild()
    {
        return new child();
    }
}

在此示例中,“子”类可以由“父”外部的代码实例化。我希望外部代码能够查看“子”类型但不能构建它自己的类型。

例如

var someChild = new parent.child();

最佳答案

  1. 制作一个公共(public)界面。
  2. 将子类设为私有(private)。
  3. 让 child 实现接口(interface)。
  4. getChild 方法创建一个新的 child 并返回接口(interface)类型。

如评论和其他答案中所述,您还可以将内部类构造函数的访问修饰符更改为内部或私有(private),同时将内部类本身保留为公共(public)。

关于只能由其父类实例化的 c# 公共(public)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10620140/

相关文章:

ruby-on-rails - 如何在 Ruby 中封装包含的模块方法?

python - 在 pandas、OOP 类和字典之间进行选择 (Python)

java - 将构造传递到父类(super class)

c# - 处理用户控件 (MVVM) 中的输入手势

c# - 使用这种异步日志记录代码有什么缺点?

c# - Visual Studio GlobalSuppression.cs 文件和 UTF-16

java - 类迭代器中的不兼容类型

c# - 配置设置那些不能在较低级别的 web.config 文件中被覆盖

c# - 亚马逊 MWS API :Retrieve multiple Images uploaded by Seller c#

php - 在php中创建匿名对象