C# C中委托的作用域#

C# C中委托的作用域#,c#,scope,delegates,C#,Scope,Delegates,代表可以是私人的吗?如果不是,除了由于它是私有的而导致的正常限制之外,还有什么原因呢?代理与任何类型的代理在可见性方面都有相同的限制。因此,您不能在顶层有一个私有代理 namespace Test { private delegate void Impossible(); } namespace Test { class Sample { // This works just fine. private delegate void MyM

代表可以是私人的吗?如果不是,除了由于它是私有的而导致的正常限制之外,还有什么原因呢?

代理与任何类型的代理在可见性方面都有相同的限制。因此,您不能在顶层有一个私有代理

namespace Test
{
    private delegate void Impossible();
}
namespace Test
{
    class Sample
    {
        // This works just fine.
        private delegate void MyMethod();

        // ...
    }
}
这将生成一个编译器错误:

命名空间中定义的元素不能显式声明为private、protected或protected internal

但与类一样,当委托驻留在另一个类中时,可以将其声明为私有的

namespace Test
{
    private delegate void Impossible();
}
namespace Test
{
    class Sample
    {
        // This works just fine.
        private delegate void MyMethod();

        // ...
    }
}
原因基本上可以追溯到

private|访问仅限于包含类型


C#,编辑了标题。谢谢,很好,谢谢你。有时,我们需要加强概念/基础。