Tipos personalizados
Además de los 16 tipos predefinidos incorporados de C#, los desarrolladores pueden crear sus propios tipos definidos por el usuario, que se dividen en seis categorías en total:
- Tipos de clase (class)
- Tipos de estructura (struct)
- Tipos de matriz (array)
- Tipos de enumeración (enum)
- Tipos delegados (delegate)
- Tipos de interfaz
Los tipos personalizados se crean mediante la declaración de tipos
- La clase de tipo que se va a crear
- El nombre del nuevo tipo
- La declaración de todos los miembros del tipo (su nombre y definición). Las matrices y delegados son excepciones, ya que no cuentan con miembros con nombre
Una vez finalizada la declaración, puedes crear y utilizar objetos de este tipo igual que con cualquier tipo predefinido.
Los tipos predefinidos (tipos incorporados) se pueden usar e instanciar directamente sin pasos previos. En cambio, los tipos personalizados, como su nombre indica, requieren que definamos primero el plano del tipo antes de crear objetos a partir de él.
Ejemplo: tipos básicos incorporados como int o float están listos para usarse, basta con escribir int age; float price;.
En el caso del tipo personalizado Person que mencionamos antes, se requieren dos pasos:
Paso uno: Declaración (definir la plantilla de tipo con class Person {})
Paso dos: Instanciación (crear un objeto con Person lucas = new Person();)
// Clase de automóvil
public class Car
{
// 1. Campos privados (almacenamiento interno de datos)
private string _brand; // Marca del vehículo
private string _color; // Color del vehículo
// 2. Propiedades públicas (punto de acceso externo, admite lógica de validación)
public string Brand
{
get { return _brand; }
set
{
// Validación sencilla: la marca no puede estar vacía
if (!string.IsNullOrEmpty(value))
_brand = value;
else
Console.WriteLine("El nombre de la marca no puede estar vacío!");
}
}
public string Color
{
get { return _color; }
set { _color = value; }
}
// 3. Método de comportamiento: conducir
public void Drive()
{
Console.WriteLine($"Un vehículo de marca【{Brand}】y color【{Color}】está en movimiento!");
}
}Lenguaje del código: JavaScript (javascript)
El código anterior implementa una clase de coche con dos campos. Los campos son variables que usan tipos incorporados para guardar los datos reales. También cuenta con dos propiedades públicas Brand y Color, que en esencia son funciones que veremos más adelante. Por último incluye el miembro de función public void Drive(){}.
Explicaremos cada uno de estos tipos personalizados con mayor detalle en capítulos posteriores.

Tipos definidos por el usuario