2010-02-14 12 views
6

¿Pueden los delegados ser privados? Si no, ¿cuál es la razón detrás de esto que no sean las restricciones normales causadas por ser privado?Alcance de un delegado en C#

+1

Qué idioma se utiliza? –

+0

C#, editó el título. Gracias. – SoftwareGeek

Respuesta

14

Los delegados tienen las mismas restricciones que cualquier otro tipo de visibilidad. Por lo tanto, no puede tener un delegado privado en el nivel superior.

namespace Test 
{ 
    private delegate void Impossible(); 
} 

Esto genera un error de compilación:

Elements defined in a namespace cannot be explicitly declared as private, protected, or protected internal

Pero como una clase, se puede declarar un delegado privada cuando reside dentro de otra clase.

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

     // ... 
    } 
} 

Básicamente, el motivo se remonta a la definición de what private is in C#:

private | Access is limited to the containing type.

+0

+1: ¡vencerme, y una respuesta más completa! –

+0

agradable, gracias bobbymcr. a veces, necesitamos un refuerzo de conceptos/conceptos básicos. – SoftwareGeek

Cuestiones relacionadas