Nol*_*rin 61 c# class public access-modifiers internal
好的,所以这可能是一个有点愚蠢的问题,肯定有明显的答案,但我很好奇,如果我错过了任何细微之处.
public在internal类中internal声明的成员与在类中声明的成员之间的可见性/可用性方面是否有任何区别internal?
即之间
internal class Foo
{
public void Bar()
{
}
}
Run Code Online (Sandbox Code Playgroud)
和
internal class Foo
{
internal void Bar()
{
}
}
Run Code Online (Sandbox Code Playgroud)
如果您将方法声明为publicand virtual,然后在派生类中对其进行覆盖,则public使用此修饰符的原因很明显.然而,这是唯一的情况......我错过了别的什么吗?
Eri*_*ert 55
考虑这种情况:
public interface IBar { void Bar(); }
internal class C : IBar
{
public void Bar() { }
}
Run Code Online (Sandbox Code Playgroud)
这里C.Bar不能标记为内部; 这样做是一个错误,因为C.Bet可以被D.GetBar()的调用者访问:
public class D
{
public static IBar GetBar() { return new C(); }
}
Run Code Online (Sandbox Code Playgroud)
Nic*_*ver 39
一个public成员仍然只是internal在internal课堂上.
成员的可访问性永远不会大于其包含类型的可访问性.例如,在内部类型中声明的公共方法只具有内部可访问性
想想这样,我会访问一个public属性......?我看不到的课程?:)
在这种情况下,Eric的答案非常重要,如果它通过界面暴露而不是直接暴露它确实有所作为,只是取决于你是否与你正在处理的成员处于这种情况.
| 归档时间: |
|
| 查看次数: |
11999 次 |
| 最近记录: |