Modificadores de acceso (especificadores) en C# con ejemplos de programas

⚡ Resumen inteligente

En C#, los modificadores de acceso son palabras clave que definen la visibilidad de una clase, propiedad o método, restringiendo qué programas externos pueden acceder a ellos. Los constructores inicializan automáticamente los valores de los campos cada vez que se crea un objeto de la clase.

  • 🔐 Privado: El modificador de acceso privado limita el acceso de un miembro a la misma clase, bloqueando el acceso desde cualquier programa externo.
  • 🌐 Público: El modificador de acceso público expone una propiedad o método a cualquier programa externo sin restricciones.
  • 🛡️ Protegido: El modificador de acceso protegido comparte miembros únicamente con las clases que heredan de la clase actual.
  • 📦 Interna: El modificador de acceso interno permite el acceso dentro del mismo ensamblado, pero no desde un programa externo.
  • ???? ️ Constructores: Un constructor comparte el nombre de la clase, no acepta ningún tipo de retorno e inicializa los campos cuando se crea un objeto.
  • 🤖 Asistencia de IA: GitHub Copilot genera modificadores y constructores, mientras que ML.NET asigna las propiedades de la clase a las características del modelo.

Modificadores de acceso (especificadores) en C#

¿Qué es el modificador de acceso (especificador) en C#?

Modificadores de acceso Los modificadores de acceso en C# son palabras clave que definen la visibilidad de las propiedades o métodos de una clase. Se utilizan cuando no se desea que otros programas vean las propiedades o métodos de una clase. Los modificadores de acceso restringen el acceso para que otros programas no puedan ver las propiedades o métodos de una clase.

Hay 6 tipos de modificadores de acceso en C#:

  • Privado
  • Público
  • Robusto
  • Interno
  • Interno protegido
  • Privado Protegido

Aprenderemos sobre los principales modificadores de acceso en C# con ejemplos de programas como se explica a continuación.

Modificadores de acceso privado en C#

Cuando el modificador de acceso privado se adjunta a una propiedad o a un método, significa que no se puede acceder a esos miembros desde ningún programa externo.

Ejemplo de modificador de acceso privado

Tomemos un ejemplo y veamos qué sucede cuando usamos el modificador de acceso privado.

Modifiquemos el código actual en nuestro archivo Tutorial.cs. En el método SetTutorial, cambiemos la palabra clave pública a privada.

Modificadores de acceso privado

Ahora pasemos a nuestro archivo Program.cs. Notarás que hay una línea ondulada roja debajo del método SetTutorial.

Como hemos declarado el método SetTutorial como privado en nuestra clase Tutorial, Visual Studio lo ha detectado y le ha indicado al usuario, resaltándolo, que ahora este método no funcionará desde el archivo Program.cs.

Modificador de acceso privado

Modificadores de acceso público de C#

Cuando el modificador de acceso público se adjunta a una propiedad o a un método, significa que se puede acceder a esos miembros desde cualquier programa externo. Ya hemos visto esto en nuestros ejemplos anteriores.

Ejemplo de modificador de acceso público

Modificadores de acceso público de C#

Como hemos definido nuestros métodos como públicos en la clase Tutorial, se puede acceder a ellos desde el archivo Program.cs.

Modificadores de acceso protegido en C#

Cuando el modificador de acceso protegido se adjunta a una propiedad o a un método, significa que solo se puede acceder a esos miembros mediante clases heredadas de la corriente clase. Esto se explicará con más detalle en la clase Herencia.

Modificadores de acceso interno de C#

Cuando se adjunta un modificador de acceso interno a una propiedad o a un método, solo un programa interno puede acceder a esos miembros, pero no un programa externo.

Constructor de C #

C# Los constructores están acostumbrados a inicializar los valores de los campos de clase cuando se crean sus objetos correspondientes. Un constructor es un método que tiene el mismo nombre que el de la clase. Si se define un constructor en una clase, proporcionará el primer método que se llama cuando se crea un objeto. Supongamos que tuviéramos una clase llamada Empleado. El método constructor también se denominaría Empleado().

Es necesario tener en cuenta los siguientes aspectos clave sobre los métodos constructores

  1. El modificador de acceso predeterminado de C# para el constructor debe hacerse público.
  2. No debería haber ningún tipo de retorno para el método constructor.

Ejemplo de constructor C#

Veamos ahora cómo podemos incorporar el usuario de constructores en nuestro código. Usaremos constructores para inicializar los campos TutorialID y TutorialName con algunos valores predeterminados cuando se crea el objeto.

Paso 1) El primer paso es crear el constructor de nuestra clase Tutorial. En este paso, agregamos el siguiente código al archivo Tutorial.cs.

Constructor de C #

Code Explicación:-

  1. Primero agregamos un nuevo método que tiene el mismo nombre que el de la clase. Debido a que tiene el mismo nombre que la clase, C# lo trata como un método constructor. Entonces, ahora, cada vez que el método de llamada crea un objeto de esta clase, este método se llamará de forma predeterminada.
  2. En el constructor del Tutorial, establecemos el valor de TutorialID en 0 y TutorialName en "Predeterminado". Entonces, cada vez que se crea un objeto, estos campos siempre tendrán estos valores predeterminados.

Ahora pasemos a nuestro archivo Program.cs y simplemente eliminemos la línea que llama al método SetTutorial. Esto se debe a que sólo queremos ver cómo funciona el constructor.

Constructor de C #

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  public int TutorialID; 
  public string TutorialName;
  
  public Tutorial()
  {
   TutorialID=0;
   TutorialName="Default";
  }
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Code Explicación:-

  1. El primer paso es crear un objeto para la clase Tutorial. Esto se hace mediante la palabra clave "nueva".
  2. Usamos el método GetTutorial de la clase Tutorial para obtener el TutorialName. Luego, esto se muestra en la consola a través del método Console.WriteLine.

Si el código anterior se ingresa correctamente y se ejecuta el programa, se mostrará el siguiente resultado.

Salida:

Constructor de C #

En el resultado, podemos ver que efectivamente se llamó al constructor y que el valor de TutorialName se estableció en "Predeterminado".

Nota: Aquí el valor "predeterminado" se obtiene del constructor.

Preguntas Frecuentes

Si no se especifica ningún modificador, los miembros de clase y estructura se establecen por defecto como privados y los tipos de nivel superior como internos, permaneciendo ocultos hasta que se amplíe su visibilidad.

Protected expone un miembro a la misma clase y a cualquier clase derivada, incluso entre diferentes ensamblados. Internal lo expone solo a los tipos del mismo ensamblado.

El modo interno protegido permite el acceso desde el mismo ensamblado o cualquier clase derivada. El modo privado protegido es más estricto y solo permite el acceso a clases derivadas dentro del mismo ensamblado.

C# admite constructores predeterminados, parametrizados, de copia, estáticos y privados. Estos inicializan los campos de un objeto, ejecutan la configuración de la clase una sola vez o clonan los valores de otro objeto.

Un constructor estático no requiere modificadores ni parámetros. Se ejecuta una sola vez, antes de que se cree el primer objeto o se carguen los miembros estáticos, inicializando los campos estáticos.

Sí. Una clase puede definir varios constructores con diferentes listas de parámetros. El compilador elige el que coincida con los argumentos pasados ​​a new.

Sí. GitHub Copilot sugiere modificadores, constructores e inicializadores de campo a partir del nombre de una clase o un comentario dentro de Visual Studio y VS Code. RevVea cada nivel de visibilidad sugerido.

ML.NET asigna las propiedades públicas de una clase de datos de C# a las características y etiquetas del modelo. Los métodos get y set públicos permiten leer esos valores durante el entrenamiento.

Resumir este post con: