Modificadores de acceso
En C#, los modificadores de acceso determinan la visibilidad y accesibilidad de los miembros (campos, propiedades, métodos, etc.) dentro de una clase. Estos modificadores controlan desde dónde se puede acceder a los miembros y cuál es su alcance. A continuación, te explico en detalle los modificadores de acceso junto con ejemplos:
public
:- El modificador
public
hace que un miembro sea accesible desde cualquier lugar, tanto dentro como fuera de la clase. - Los miembros públicos se pueden acceder desde cualquier otro código en el mismo ensamblado o en otros ensamblados que hagan referencia al ensamblado actual.
- Ejemplo:
public class Persona { public string Nombre { get; set; } }
- El modificador
private
:- El modificador
private
hace que un miembro sea accesible solo dentro de la misma clase. - Los miembros privados no se pueden acceder desde fuera de la clase.
- Es el modificador de acceso predeterminado si no se especifica ninguno.
- Ejemplo:
public class CuentaBancaria { private decimal saldo; public void Depositar(decimal cantidad) { saldo += cantidad; } public decimal ObtenerSaldo() { return saldo; } }
- El modificador
protected
:- El modificador
protected
hace que un miembro sea accesible dentro de la misma clase y por clases derivadas (heredadas) de esa clase. - Los miembros protegidos no se pueden acceder desde fuera de la clase ni desde clases no derivadas.
- Ejemplo:
public class Vehiculo { protected string marca; public Vehiculo(string marca) { this.marca = marca; } } public class Coche : Vehiculo { public Coche(string marca) : base(marca) { } public void MostrarMarca() { Console.WriteLine($"Marca del coche: {marca}"); } }
- El modificador
internal
:- El modificador
internal
hace que un miembro sea accesible solo dentro del mismo ensamblado (proyecto). - Los miembros internos no se pueden acceder desde fuera del ensamblado actual.
- Es útil para ocultar detalles de implementación dentro del mismo proyecto.
- Ejemplo:
internal class DetallesInternos { // Detalles de implementación }
- El modificador
protected internal
:- El modificador
protected internal
combina las características deprotected
einternal
. - Hace que un miembro sea accesible dentro del mismo ensamblado o por clases derivadas (heredadas) de cualquier ensamblado.
- Es útil cuando deseas que un miembro sea accesible para clases derivadas, incluso si están en otros ensamblados.
- Ejemplo:
protected internal class DetallesProtegidosInternos { // Detalles de implementación }
- El modificador
private protected
:- El modificador
private protected
hace que un miembro sea accesible solo dentro del mismo ensamblado por clases derivadas declaradas dentro del mismo ensamblado. - Es una combinación de
private
yprotected
. - Útil cuando deseas limitar el acceso solo a clases derivadas dentro del mismo ensamblado.
- Ejemplo:
private protected class DetallesPrivadosProtegidos { // Detalles de implementación }
- El modificador