【问题标题】:Make certain classes only accessible once you've created an instance to the Client that holds those classes使某些类仅在您为保存这些类的客户端创建实例后才可访问
【发布时间】:2021-01-17 13:49:48
【问题描述】:

我正在制作一个类库。这个类库中有一个名为Task Controller 的类。它包含依赖于类库主客户端中形成的数据的方法。

如何才能使任务控制器类只有在编码人员创建了客户端实例后才能访问。

希望编码器按以下方式调用它: Client.TaskController.foo()

【问题讨论】:

    标签: c# class access-modifiers modifier


    【解决方案1】:

    也许您想要公共类 TaskController 的公共属性 TaskController,它本身只能由您的库使用私有或内部构造函数实例化。

    更多关于internal关键字的信息在MSDN上。

    public class TaskController
    {
        // ...
    
        public void foo()
        {
             // ...
        }
    
    
        // internal constructor prevents object creation from outside your library
        internal TaskController()
        {
            // ...
        }
    }
    
    public class Client
    {
        // ...
    
        // public constructor makes it possible to instantiate from outside the library
        public Client()
        {
            this.TaskController = new TaskController();
            // ...
        }
    
        // public property
        public TaskController TaskController { get; private set; }
    
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 2012-04-27
      相关资源
      最近更新 更多