Noticias, tutoriales, Humor, Descargas y un largo etc.

30 mar 2010

Ámbito - C Sharp (#).

En programación se denomina ámbito a la visibilidad de una variable o método. Algunas variables pueden ser declaradas como de ámbito público, otras pueden ser declaradas como de ámbito privado y otras pueden estar entre estos dos casos.

C Sharp(#) define cinco palabras clave, para definir el ámbito de cualquier miembro (variable o método) de una clase, he aqui las palabras clave:

1.- public : los miembros son visibles para las clases derivadas y para el código que crea los objetos de la clase.

2.- private: los miembros sólo son visibles para la clase en la que se definen y no son accesibles desde las clases derivadas, ni por el código que crea objetos de la clase.

3.- protected: los miembros sólo son visibles para la clase en la que se definen o desde las clases derivadas de esa clase. No se puede acceder a los miembros protegidos desde el código que crea los objetos de su clase.

4.- internal : los miembros son visibles para cualquier código en el mismo archivo binario. Recuerde que .NET Framework acepta el concepto de ensamblados, que son bibliotecas de código ya compiladas que pueden ser usadas por aplicaciones externas. Si se escribe una clase en C Sharp(#) y se compila la clase para obtener un ensamblado, cualquier fragmento de código del ensamblado podrá acceder a los miembros de clase internal. Sin embargo, si otro fragmento de código usa ese ensamblado, no tendrá acceso al miembro, aunque derive una clase de la clase del ensamblado.

5.- protected internal: los miembros son visibles para todo el código incluido en el mismo archivo binario y para las clases externas que se deriven de su clase. Si se escribe una clase en C Sharp(#) y se compila la clase para obtener un ensamblado, cualquier fragmento de código del ensamblado puede acceder a los miembros de clase internos. Si otro fragmento de código externo usa el ensamblado y deriva una clase de la clase ensamblado, el miembro interno protegido será accesible para la clase derivada. Sin embargo, el código que trabaja con los objetos de la clase base no tendrá acceso al miembro.

1 comentario: