visual - C#: Atribuir o mesmo valor a várias variáveis na declaração única




metodos c# (7)

É simples.

int num1,num2;
num1 = num2 = 5;

Existe alguma maneira (apenas por curiosidade porque me deparei com várias atribuições de mesmo valor para múltiplas variáveis ​​hoje) em C # para atribuir um valor a várias variáveis ​​de uma só vez em uma única instrução?

Algo ao longo destas linhas (pseudocódigo):

int num1 = 1;
int num2 = 1;

num1 & num2 = 5;

Provavelmente não, mas achei que valeria a pena pedir no caso de algo similar ser realmente possível!


É tão simples como:

num1 = num2 = 5;

Ao usar uma propriedade de objeto em vez de variável, é interessante saber que o acessador get do valor intermediário não é chamado. Apenas o acessador set é chamado para todas as propriedades acessadas na sequência de designação.

Tomemos, por exemplo, uma classe que grava no console sempre que o acessador get e set for invocado.

static void Main(string[] args)
{
    var accessorSource = new AccessorTest(5);
    var accessor1 = new AccessorTest();
    var accessor2 = new AccessorTest();

    accessor1.Value = accessor2.Value = accessorSource.Value;

    Console.ReadLine();
}

public class AccessorTest
{
    public AccessorTest(int value = default(int))
    {
        _Value = value;
    }

    private int _Value;

    public int Value
    {
        get
        {
            Console.WriteLine("AccessorTest.Value.get {0}", _Value);
            return _Value;
        }
        set
        {
            Console.WriteLine("AccessorTest.Value.set {0}", value);
            _Value = value;
        }
    }
}

Isto irá produzir

AccessorTest.Value.get 5
AccessorTest.Value.set 5
AccessorTest.Value.set 5

Isso significa que o compilador atribuirá o valor a todas as propriedades e não relerá o valor toda vez que for atribuído.


Algo um pouco mais curto na sintaxe, mas tomando o que os outros já afirmaram.

int num1, num2 = num1 = 1;

Isso vai querer que você queira:

int num1, num2;
num1 = num2 = 5;

A atribuição 'num2 = 5' retornará o valor atribuído.

Isso permite que você faça coisas malucas como num1 = (num2 = 5) +3; que irá atribuir 8 a num1, embora eu não recomendaria fazê-lo como não ser muito legível.


Tente isto:

num1 = num2 = 5;

Observe que isso não funcionará no VB.


num1 = num2 = 5


int num1=5,num2=5

Declarando e atribuindo variáveis ​​na mesma instrução.







c#