Compartilhar via


set (Referência de C#)

A palavra-chave set define um método acessador em uma propriedade ou indexador que atribui um valor ao elemento da propriedade ou do elemento. Para obter mais informações e exemplos, consulte Propriedades, Propriedades implementadas automaticamente e Indexadores.

O exemplo a seguir define um acessador get e um acessador set para uma propriedade chamada Seconds. Ela usa um campo particular chamado _seconds para dar suporte ao valor da propriedade.

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;
        }
    }
}

Geralmente, o acessador set consiste em uma única instrução que retorna um valor, como no exemplo anterior. Você pode implementar o acessador set como um membro apto para expressão. O exemplo a seguir implementa os acessadores get e set como membros com corpo de expressão.

class TimePeriod2
{
    private double _seconds;

    public double Seconds
    {
        get => _seconds;
        set => _seconds = value;
    }
}

Para casos simples em que uma propriedade get e set acessadores não executam nenhuma outra operação além de definir ou recuperar um valor em um campo de suporte privado, você pode aproveitar o suporte do compilador C# para propriedades implementadas automaticamente. O exemplo a seguir é implementado como uma propriedade implementada Hours automaticamente.

class TimePeriod3
{
    public double Hours { get; set; }
}

Importante

As propriedades implementadas automaticamente não são permitidas para declarações de propriedade de interface ou a declaração de implementação de uma propriedade parcial. O compilador interpreta a sintaxe correspondente a uma propriedade implementada automaticamente como a declaração de declaração, não uma declaração de implementação.

Especificação da linguagem C#

Para obter mais informações, consulte a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Confira também