代表可以私密吗?如果没有,除了由于它是私有的正常限制之外,其他原因是什么呢?
答案 0 :(得分:16)
代表在可见性方面与任何类型都有相同的限制。因此,无法在顶级设置私人代表。
namespace Test
{
private delegate void Impossible();
}
这会生成编译器错误:
命名空间中定义的元素不能显式声明为private,protected或protected internal
但是就像一个类,当它位于另一个类中时,你可以声明一个委托私有。
namespace Test
{
class Sample
{
// This works just fine.
private delegate void MyMethod();
// ...
}
}
原因基本上可以追溯到what private
is in C#:
私人 |访问仅限于包含类型。