正如你可能已经知道的.净框架的 受保护的内部 访问的修改工作在一个奇怪的方式:这并不意味着类 受保护的 内部, 它说这类是 受保护的 内部;即,改类或部件可以从whitin同一会 以及 从相同的层次结构。

所以,我知道这个:当你能用它呢?你能举个例子吗?是有一个良好的, 照亮 使用示例内。净基类图书馆?

有帮助吗?

解决方案

我们很少需要使用这种访问的修改符合作为我认为,在所有,但最极端的情况下,这是一个指标,贫穷的设计。然而,有时需要有助手类似类型转换器和编辑访问的方法内部会,但只允许派生类访问它在其他使用情况。

一个例子可能是一个电话,转型成一串的类型转换器。 ToString() 一般不是用于此目的的所以你可能有一个 ToPersistableString() 呼叫,你希望你的类型转换器使用,所以你让它 internal.然后你决定人们产生类可能要使用这个通话的一部分他们自己的持久方案,为他们得出类的所以你让它 protected 为好。

.净框架的使用
AccessibilityNotifyClientsControlprotected internal.使用 反射器, 我可以看到,这样做是如此, CheckedItemCollectionCheckListBox 可以访问它的时候改变检查的国家。

其他提示

我已将它用于您希望能够在单独的名称空间中用于单元测试的内部方法,单元测试名称空间包含该类的子类。这允许访问受保护的方法。

这就是说有一个论点要求公开单元测试。

我想在ASP.Net MVC框架中添加一个示例:

public abstract class Controller : ControllerBase, <Omitted Interfaces>
{
     protected internal ViewResult View() {
            return View(null /* viewName */, null /* masterName */, null /* model */);
        }

     protected internal ContentResult Content(string content) {
            return Content(content, null /* contentType */);
        }

}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top