Объем делегата в C#

Делегаты могут быть частными? В противном случае, какова причина позади этого кроме нормальных ограничений, вызванных им являющийся частным?

6
задан Tim Cooper 24 September 2011 в 12:54
поделиться

1 ответ

Делегаты имеют те же ограничения, что и любой тип, в отношении видимости. Таким образом, у вас не может быть частного делегата на верхнем уровне .

namespace Test
{
    private delegate void Impossible();
}

Это вызывает ошибку компилятора:

Элементы, определенные в пространстве имен, не могут быть явно объявлены как частные, защищенные или защищенные внутренние

Но, как и класс, вы можете объявить делегат частным, когда он находится внутри другой класс .

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

        // ...
    }
}

Причина в основном восходит к определению того, что private находится в C #:

private | Доступ ограничен содержащим типом.

16
ответ дан 8 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: