Ir al contenido principal

Modificadores de acceso c#

En C#, los modificadores de acceso se utilizan para controlar la visibilidad y accesibilidad de clases y sus miembros (campos, métodos, propiedades, etc.).

1. public: El miembro es accesible desde cualquier parte del código, tanto dentro de la misma clase como desde otras clases que estén en el mismo ensamblado o en ensamblados diferentes.

   
    public class MiClase
    {
        public int MiVariable;
        public void MiMetodo() { }
    }
    

2. private: El miembro es accesible solo dentro de la clase en la que se define. No es accesible desde clases externas ni desde otras partes del código.

    
    public class MiClase
    {
        private int MiVariable;
        private void MiMetodo() { }
    }
    

3. protected: El miembro es accesible dentro de la clase que lo define y en las clases derivadas (subclases). No es accesible desde clases externas a menos que sea una subclase.

    Q
    public class MiClase
    {
        protected int MiVariable;
        protected void MiMetodo() { }
    }

    public class MiClaseDerivada : MiClase
    {
        public void OtroMetodo()
        {
            MiVariable = 10; // Acceso permitido porque MiClaseDerivada es una subclase de MiClase
            MiMetodo();      // Acceso permitido por la misma razón
        }
    }
    

4. internal: El miembro es accesible solo dentro del mismo ensamblado (assembly). Es decir, otras clases que estén en el mismo proyecto pueden acceder a este miembro, pero no clases externas.

    
    internal class MiClase
    {
        internal int MiVariable;
        internal void MiMetodo() { }
    }
    

5. protected internal: Este modificador combina las características de `protected` e `internal`. El miembro es accesible en las clases derivadas (subclases) dentro del mismo ensamblado.

    
    public class MiClase
    {
        protected internal int MiVariable;
        protected internal void MiMetodo() { }
    }

    public class MiClaseDerivada : MiClase
    {
        public void OtroMetodo()
        {
            MiVariable = 10; // Acceso permitido porque MiClaseDerivada es una subclase de MiClase
            MiMetodo();      // Acceso permitido por la misma razón
        }
    }
    

6. private protected: Introducido en C# 7.2, este modificador es similar a `protected`, pero restringe aún más el acceso a las clases derivadas (subclases) solo dentro del mismo ensamblado.

    
    public class MiClase
    {
        private protected int MiVariable;
        private protected void MiMetodo() { }
    }

    public class MiClaseDerivada : MiClase
    {
        public void OtroMetodo()
        {
            MiVariable = 10; // Acceso permitido porque MiClaseDerivada es una subclase de MiClase
            MiMetodo();      // Acceso permitido por la misma razón
        }
    }
   

Comentarios

Entradas populares de este blog

Principios SOLID del Tio Bob

  Principios SOLID del Tio Bob Los principios sólidos son un conjunto de pautas de diseño de software que se centran en lograr código limpio, modular y mantenible. Estos principios fueron propuestos por Robert C. Martin (Uncle Bob) y se consideran fundamentales en el desarrollo de software orientado a objetos. Los cinco principios sólidos son los siguientes:   1. Principio de Responsabilidad Única (Single Responsibility Principle, SRP): Una clase debería tener una única responsabilidad. Esto significa que una clase debe tener una única razón para cambiar. Al tener una responsabilidad única, se logra un código más cohesivo y fácil de mantener.   2. Principio de Abierto/Cerrado (Open/Closed Principle, OCP): Las entidades de software (clases, módulos, etc.) deben estar abiertas para su extensión pero cerradas para su modificación. Esto significa que el comportamiento de una entidad puede ser extendido sin necesidad de modificar su código fuente original.  ...

Desarrollador junior C#

Habilidades que se esperan de un desarrollador junior (C#)   1.      Conocimientos básicos de programación: Debes tener una comprensión sólida de los conceptos fundamentales de programación, como variables, estructuras de control, bucles, funciones, etc. 2.      Dominio del lenguaje C#: Debes tener conocimientos sólidos del lenguaje C# y su sintaxis. Debes estar familiarizado con los conceptos orientados a objetos, como clases, herencia, polimorfismo, etc. 3.      Conocimientos de .NET Framework: C# se utiliza principalmente para el desarrollo en el entorno de .NET Framework, por lo que debes tener un conocimiento básico de esta plataforma, incluyendo las bibliotecas y clases comunes que se utilizan en el desarrollo de aplicaciones. 4.      Experiencia con Visual Studio: Visual Studio es el entorno de desarrollo integrado (IDE) más popular para C#. Debes estar familiarizado con su uso y ser capa...

Programación asíncrona comparación Kotlin y C#

La programación asíncrona es un enfoque en la programación que permite que las tareas se ejecuten de manera independiente y no bloqueante. En lugar de esperar a que una tarea se complete antes de pasar a la siguiente, las tareas se pueden ejecutar en paralelo o de manera secuencial, lo que mejora la eficiencia y la capacidad de respuesta de las aplicaciones. ¿Como implementar programación asíncrona en Kotlin? Usando Coroutines. Las coroutines en Kotlin son una forma de escribir código asíncrono de manera más concisa y legible. En lugar de bloquear el hilo principal mientras esperamos a que se complete una tarea, las coroutines permiten que el hilo siga ejecutándose mientras esperamos que una tarea asincrónica termine. Esto mejora la eficiencia y la capacidad de respuesta de las aplicaciones. Un ejemplo básico: KOTLIN import kotlinx.coroutines.* fun main() {     println("Inicio")     // Lanzar una coroutine     GlobalScope.launch {       ...