【发布时间】:2021-01-17 13:49:48
【问题描述】:
我正在制作一个类库。这个类库中有一个名为Task Controller 的类。它包含依赖于类库主客户端中形成的数据的方法。
如何才能使任务控制器类只有在编码人员创建了客户端实例后才能访问。
希望编码器按以下方式调用它: Client.TaskController.foo()
【问题讨论】:
标签: c# class access-modifiers modifier
我正在制作一个类库。这个类库中有一个名为Task Controller 的类。它包含依赖于类库主客户端中形成的数据的方法。
如何才能使任务控制器类只有在编码人员创建了客户端实例后才能访问。
希望编码器按以下方式调用它: Client.TaskController.foo()
【问题讨论】:
标签: c# class access-modifiers modifier
也许您想要公共类 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; }
}
【讨论】: