0Pricing
C# Academy · Lección

El modificador required

Obligue a los llamadores a establecer las propiedades esenciales.

El modificador required es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C# Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C# Academy incluye 4 lecciones en total.

El modificador required

El modificador required obliga a los autores de las llamadas a establecer una propiedad o un campo al crear un objeto. Traslada los errores de «ha olvidado un valor» del tiempo de ejecución al tiempo de compilación.

using System;

class Person {
    public required string Name { get; init; }
}

var p = new Person { Name = "Ada" };
Console.WriteLine(p.Name); // Ada

Omitir un miembro required impide la compilación

Si quien realiza la llamada omite un miembro required, el compilador informa de un error antes de que el programa llegue a ejecutarse.

using System;

class Person {
    public required string Name { get; init; }
}

// var bad = new Person { }; // compile error: Name is required
var good = new Person { Name = "Lin" };
Console.WriteLine(good.Name); // Lin

required con init

required combina de forma natural con init: el valor debe proporcionarse durante la construcción y no puede cambiar después.

using System;

class Config {
    public required string Url { get; init; }
    public int Timeout { get; init; } = 30;
}

var c = new Config { Url = "https://api" };
Console.WriteLine(c.Url + " " + c.Timeout); // https://api 30

required con set

También puede marcar como required una propiedad modificable. Debe inicializarse, pero puede cambiar posteriormente.

using System;

class Box {
    public required int Size { get; set; }
}

var b = new Box { Size = 5 };
b.Size = 10; // still mutable
Console.WriteLine(b.Size); // 10

Campos required

Los campos también pueden ser required, no solo las propiedades.

using System;

class Token {
    public required string Value;
}

var t = new Token { Value = "abc123" };
Console.WriteLine(t.Value); // abc123

Constructores y required

Si un constructor establece un miembro required, quienes utilicen ese constructor ya no tendrán que establecerlo. Use [SetsRequiredMembers] para informárselo al compilador.

using System;
using System.Diagnostics.CodeAnalysis;

class Person {
    public required string Name { get; init; }
    [SetsRequiredMembers]
    public Person(string name) => Name = name;
}

Console.WriteLine(new Person("Sam").Name); // Sam

Combinación de required y opcional

Solo son obligatorios los miembros que marque; los demás siguen siendo opcionales y conservan sus valores predeterminados.

using System;

class Account {
    public required string Owner { get; init; }
    public decimal Balance { get; init; } = 0m;
}

var a = new Account { Owner = "Kai" };
Console.WriteLine(a.Owner + " " + a.Balance); // Kai 0

required en la herencia

Los miembros required se heredan. Una clase derivada puede añadir sus propios miembros required, y todos deben establecerse.

using System;

class Base { public required int Id { get; init; } }
class Item : Base { public required string Name { get; init; } }

var i = new Item { Id = 1, Name = "Pen" };
Console.WriteLine(i.Id + " " + i.Name); // 1 Pen

Sustitución de constructores complejos

required + init suele sustituir a los constructores grandes: obtiene miembros obligatorios con la sintaxis legible de los inicializadores de objetos.

using System;

class Email {
    public required string To { get; init; }
    public required string Subject { get; init; }
    public string Body { get; init; } = "";
}

var e = new Email { To = "a@b.com", Subject = "Hi" };
Console.WriteLine(e.To + " | " + e.Subject); // a@b.com | Hi

Intención autoexplicativa

Marcar miembros como required documenta qué valores son esenciales, lo que facilita utilizar correctamente el tipo.

using System;

class Registration {
    public required string Username { get; init; }
    public required string Password { get; init; }
    public bool Newsletter { get; init; }
}

var r = new Registration { Username = "ada", Password = "x" };
Console.WriteLine(r.Username); // ada

Integración

Un tipo que combina miembros required, opcionales y validados.

using System;

class Server {
    public required string Host { get; init; }
    public int Port { get; init; } = 8080;
    public string Address => Host + ":" + Port;
}

var s = new Server { Host = "localhost" };
Console.WriteLine(s.Address); // localhost:8080

Comprobación rápida

Confirme qué garantiza el modificador required.

Resumen

Ha aprendido a utilizar el modificador required.

  • Obliga a quienes realizan las llamadas a inicializar el miembro al crear el objeto; el compilador lo comprueba.
  • Se combina con init para obtener miembros obligatorios e inmutables.
  • [SetsRequiredMembers] permite que un constructor satisfaga el requisito.
  • Los miembros required se heredan.

Preguntas frecuentes

¿La lección «El modificador required» es gratis?

Sí — el texto completo de «El modificador required» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C# Academy, actualiza a CoddyKit PRO. El curso de C# Academy incluye 4 lecciones en total.

¿Qué aprenderé en «El modificador required»?

Obligue a los llamadores a establecer las propiedades esenciales. Practicas C# Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C# Academy?

No se requiere experiencia previa. C# Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «El modificador required»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C# Academy?

Sí. Cada lección de C# Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Setters de solo inicialización con init
  2. El modificador required
  3. Patrones de objetos inmutables
  4. Expresiones with en records
← Volver a C# Academy