MEJOR SITIO PARA DESARROLLADORES WEB
Lenguaje C#. W3Schools lecciones en español

Ua En De

C# Propiedades (Obtener y Establecer)


Propiedades y encapsulación

Antes de comenzar a explicar las propiedades, debes tener un conocimiento básico de "Encapsulación".

El significado de Encapsulación es garantizar que los datos "sensibles" estén ocultos para los usuarios. Para lograr esto, debes:

  • declarar campos/variables como private
  • proporcionar los métodos public get y set, a través de properties, para acceder y actualizar el valor de un campo private

Propiedades

Aprendiste del capítulo anterior que solo se puede acceder a las variables private dentro de la misma clase (una clase externa no tiene acceso a ellas). Sin embargo, a veces necesitamos acceder a ellos, y eso se puede hacer con propiedades.

Una propiedad es como una combinación de una variable y un método, y tiene dos métodos: un get y un método set:

Ejemplo

class Person
{
  private string name; // campo

  public string Name   // propiedad
  {
    get { return name; }   // get method
    set { name = value; }  // set method
  }
}

Ejemplo explicado

La propiedad Name está asociada con el campo name. Es una buena práctica utilizar el mismo nombre tanto para la propiedad como para el campo privado, pero con la primera letra en mayúscula.

El método get devuelve el valor de la variable name.

El método set asigna un value al name variable. La palabra clave value representa el valor que asignamos a la propiedad.

Si no lo entiendes completamente, mira el siguiente ejemplo.

Ahora podemos usar la propiedad Name para acceder y actualizar el campo private del Person clase:

Ejemplo

class Person
{
  private string name; // campo
  public string Name   // propiedad
  {
    get { return name; }
    set { name = value; }
  }
}

class Program
{
  static void Main(string[] args)
  {
    Person myObj = new Person();
    myObj.Name = "Liam";
    Console.WriteLine(myObj.Name);
  }
}

La salida será:

Liam

Inténtalo tú mismo »


Propiedades automáticas (taquigrafía)

C# también proporciona una forma de utilizar propiedades abreviadas/automáticas, donde no es necesario definir el campo para la propiedad y solo hay que escribir get; y set; dentro de la propiedad.

El siguiente ejemplo producirá el mismo resultado que el ejemplo anterior. La única diferencia es que hay menos código:

Ejemplo

Usando propiedades automáticas:

class Person
{
  public string Name  // propiedad
  { get; set; }
}

class Program
{
  static void Main(string[] args)
  {
    Person myObj = new Person();
    myObj.Name = "Liam";
    Console.WriteLine(myObj.Name);
  }
}

La salida será:

Liam

Inténtalo tú mismo »


¿Por qué encapsular?

  • Mejor control de los miembros de la clase (reduce la posibilidad de que usted (u otros) estropeen el código)
  • Los campos se pueden hacer solo lectura (si solo usa el método get), o solo escritura (si solo usa el método set)
  • Flexible: el programador puede cambiar una parte del código sin afectar otras partes
  • Mayor seguridad de los datos