Junior
¿Para qué se utilizan los campos con el modificador readonly en C#?
sobes.tech AI
Respuesta de la IA
Un campo con el modificador readonly en C# solo puede ser inicializado en el momento de la declaración del campo o en el constructor de la clase. Después de la inicialización, su valor no puede ser cambiado.
Objetivos de uso:
- Garantizar inmutabilidad: Asegura que el valor del campo no será cambiado accidentalmente después de crear el objeto. Esto aumenta la fiabilidad del código y facilita la depuración.
- Constantes para cada instancia: A diferencia de las constantes estáticas (
const), los camposreadonlypueden tener diferentes valores en diferentes instancias de la clase. - Inicialización en el constructor: Permite establecer un valor final para el campo basado en la lógica del constructor, lo cual no es posible para campos
const(que deben ser inicializados con un literal o constante en tiempo de compilación). - Mejora del rendimiento al trabajar con estructuras: Para estructuras, los campos
readonlypueden mejorar el rendimiento, ya que el compilador puede realizar ciertas optimizaciones sabiendo que el valor no cambiará.
Ejemplo:
public class MyClass
{
public readonly int ImmutableValue; // Puede ser inicializado aquí o en el constructor
public readonly string Name;
// Constructor para asignar valores a los campos readonly
public MyClass(int value, string name)
{
ImmutableValue = value;
Name = name;
}
// Este método causará un error de compilación, ya que intenta modificar un campo readonly
// public void TryChangeValue(int newValue)
// {
// ImmutableValue = newValue; // Error de compilación
// }
}