Propiedades en C#: Guía completa
Las propiedades son miembros nombrados de clases, estructuras e interfaces. Las variables miembro o métodos en una clase o estructura se llaman campos (Fields). Las propiedades son una extensión de los campos y se acceden usando la misma sintaxis. Usan accesores (accessors) a través de los cuales los valores de los campos privados pueden leerse, escribirse o manipularse.
Las propiedades no nombran ubicaciones de almacenamiento. En su lugar, tienen accesores que leen, escriben o calculan sus valores.
Por ejemplo, una clase Estudiante con campos privados para edad, nombre y código. No se puede acceder directamente a estos campos desde fuera, pero se pueden tener propiedades para acceder a ellos.
Accesores
El accesor de una propiedad contiene las sentencias ejecutables que ayudan a obtener (leer/calcular) o establecer (escribir) la propiedad. Las declaraciones de accesor pueden contener un accesor get, un accesor set, o ambos.
Ejemplo:
// Propiedad Código de tipo string:
public string Código {
get { return código; }
set { código = value; }
}
// Propiedad Nombre de tipo string:
public string Nombre {
get { return nombre; }
set { nombre = value; }
}
// Propiedad Edad de tipo int:
public int Edad {
get { return edad; }
set { edad = value; }
}
Ejemplo completo
using System;
namespace tutorialspoint {
class Estudiante {
private string código = "N.A";
private string nombre = "desconocido";
private int edad = 0;
public string Código {
get { return código; }
set { código = value; }
}
public string Nombre {
get { return nombre; }
set { nombre = value; }
}
public int Edad {
get { return edad; }
set { edad = value; }
}
public override string ToString() {
return "Código = " + Código + ", Nombre = " + Nombre + ", Edad = " + Edad;
}
}
class EjemploDemo {
public static void Main() {
Estudiante e = new Estudiante();
e.Código = "001";
e.Nombre = "Zara";
e.Edad = 9;
Console.WriteLine("Info Estudiante: {0}", e);
e.Edad += 1;
Console.WriteLine("Info Estudiante: {0}", e);
Console.ReadKey();
}
}
}
Resultado:
Info Estudiante: Código = 001, Nombre = Zara, Edad = 9
Info Estudiante: Código = 001, Nombre = Zara, Edad = 10
Propiedades abstractas
Una clase abstracta puede tener una propiedad abstracta, que debe implementarse en la clase derivada.
Ejemplo:
using System;
namespace tutorialspoint {
public abstract class Persona {
public abstract string Nombre { get; set; }
public abstract int Edad { get; set; }
}
class Estudiante : Persona {
private string código = "N.A";
private string nombre = "N.A";
private int edad = 0;
public string Código {
get { return código; }
set { código = value; }
}
public override string Nombre {
get { return nombre; }
set { nombre = value; }
}
public override int Edad {
get { return edad; }
set { edad = value; }
}
public override string ToString() {
return "Código = " + Código + ", Nombre = " + Nombre + ", Edad = " + Edad;
}
}
class EjemploDemo {
public static void Main() {
Estudiante e = new Estudiante();
e.Código = "001";
e.Nombre = "Zara";
e.Edad = 9;
Console.WriteLine("Info Estudiante: {0}", e);
e.Edad += 1;
Console.WriteLine("Info Estudiante: {0}", e);
Console.ReadKey();
}
}
}
Resultado:
Info Estudiante: Código = 001, Nombre = Zara, Edad = 9
Info Estudiante: Código = 001, Nombre = Zara, Edad = 10
Lenguaje C
- Propiedades Aritméticas: Asociativa, Conmutativa y Distributiva Explicadas
- Reglas de Exponentes: Propiedades Clave para Manipulación Algebraica
- El poder antimicrobiano de la plata: cómo el metal combate bacterias, hongos y virus
- Forjados AMPCO® 25: Aleación de alto rendimiento para materiales de matrices superiores
- UGICHROM® 4462: Cromado Microfisurado de Alto Rendimiento para Sistemas Hidráulicos y Neumáticos
- UGICHROM® 4362: Acero Inoxidable Cromado Microfisurado Premium para Aplicaciones Hidráulicas y Neumáticas
- Bainidur® 1300: Aleación de Forja de Alta Resistencia y Bajo Riesgo de Grietas
- Bainidur® 7980 CN: Acero de Baja Aleación Premium para Cementación y Carbonitruración Superior
- UGICHROM® 4460: Acero inoxidable cromado ultra-durable para aplicaciones hidráulicas y neumáticas
- Printdur® 4404: Acero Inoxidable 316L para Fabricación Aditiva (LPBF)
- MHC Molibdeno-Hafnio-Carbono: Aleación Reforzada con Partículas para Alta Temperatura