我无法弄清楚为什么Control.CreateChildControls在网页的代码隐藏类中可见。也就是说,Control.CreateChildControls定义为protected internal
,这意味着该方法仅对位于与Control类相同的程序集内的派生类可见。那么怎么可能,因为据我所知,web-page类没有编译成与Control类(System.Web.dll)相同的程序集?
感谢名单
答案 0 :(得分:2)
不幸的是,“受保护的内部”的措辞具有误导性。这意味着'受保护'或'内部'而非'受保护'和'内部'。
在你的%程序文件%\ microsoft visual studio 9.0 \ vc#\ Specifications \ 1033中,你有C#参考手册,这是在1.6.2节。
因此派生类可以使用它。
答案 1 :(得分:2)
我发现将“受保护与内部”与“受保护或内部”之间的差异描述为非常无益。哪个是“内部保护”?
你可以说“受保护的内部是受保护的和内部的限制最少的组合,因此它意味着'受保护的和内部'”。
您还可以说“受保护的内部限制对派生成员的访问或成员,因此它意味着'受保护的或内部'”。
呸。
更好的思考方式是:
有关此问题的更多想法,请参阅:
答案 2 :(得分:1)
Page
类继承自Control
,它们都在System.Web.UI命名空间中,并且都在System.Web程序集中。