Palabra clave set (Referencia de C#)
La palabra clave set
define un método de descriptor de acceso en una propiedad o indexador que asigna el valor de la propiedad o del elemento del indexador. Para obtener más información y ejemplos, vea Propiedades, Propiedades implementadas automáticamente e Indizadores.
Para casos sencillos en los que los descriptores de acceso y set
de get
una propiedad no realizan ninguna otra operación que establecer o recuperar un valor en un campo de respaldo privado, puede usar propiedades implementadas automáticamente. En el ejemplo siguiente se implementa Hours
como una propiedad implementada automáticamente.
class TimePeriod3
{
public double Hours { get; set; }
}
Importante
Las propiedades implementadas automáticamente no se permiten para declaraciones de propiedad de interfaz ni para la declaración de implementación de una propiedad parcial. El compilador interpreta la sintaxis que coincide con una propiedad implementada automáticamente como declaración declarante, no como una declaración de implementación.
Es posible que tenga que implementar uno de los cuerpos de descriptor de acceso. La field
palabra clave , agregada como característica de vista previa en C# 13 declara una propiedad respaldada por campos. Puede usar una propiedad respaldada por campos para permitir que el compilador genere un descriptor de acceso mientras escribe el otro a mano. Use la field
palabra clave para acceder al campo de respaldo sintetizado del compilador:
class TimePeriod4
{
public double Hours {
get;
set => field = (value >= 0)
? value
: throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
}
}
Importante
La field
palabra clave es una característica en versión preliminar en C# 13. Debe usar .NET 9 y establecer el <LangVersion>
elemento preview
en en el archivo de proyecto para poder usar la field
palabra clave contextual.
Debe tener cuidado con el uso de la field
característica de palabra clave en una clase que tenga un campo denominado field
. La nueva field
palabra clave sombrea un campo denominado field
en el ámbito de un descriptor de acceso de propiedad. Puede cambiar el nombre de la field
variable o usar el @
token para hacer referencia al field
identificador como @field
. Para más información, lea la especificación de características de la field
palabra clave .
A menudo, el descriptor de acceso set
consta de una única instrucción que asigna un valor, como en el ejemplo anterior. Puede implementar el descriptor de acceso set
como un miembro con forma de expresión. En el ejemplo siguiente se implementan los descriptores de acceso get
y set
como miembros con forma de expresión.
class TimePeriod2
{
private double _seconds;
public double Seconds
{
get => _seconds;
set => _seconds = value;
}
}
En el ejemplo siguiente se definen unos descriptores de acceso get
y set
para una propiedad denominada Seconds
. Usa un campo privado denominado _seconds
para respaldar el valor de la propiedad.
class TimePeriod
{
private double _seconds;
public double Seconds
{
get { return _seconds; }
set
{
if (value < 0)
{
throw new ArgumentOutOfRangeException(nameof(value), "The value of the time period must be non-negative.");
}
_seconds = value;
}
}
}
Especificación del lenguaje C#
Para obtener más información, consulte la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.