Start Debugging
2023-08-05 Atualizado 2023-11-05 csharp Edit on GitHub

Existe em C# um equivalente à instrução With...End With?

A instrução With...End With do VB permite executar uma série de comandos que se referem repetidamente a um único objeto, usando uma sintaxe simplificada para acessar seus membros. Existe um equivalente em C#? Não. O mais próximo seriam os inicializadores de objeto, mas eles só servem para instanciar objetos novos.

A instrução With…End With do VB permite executar uma série de comandos que se referem repetidamente a um único objeto. Assim, os comandos podem usar uma sintaxe simplificada para acessar os membros do objeto. Por exemplo:

With car
    .Make = "Mazda"
    .Model = "MX5"
    .Year = 1989
End With

Existe um equivalente sintático em C#?

Não. Não existe. O mais próximo seriam os inicializadores de objeto, mas eles só servem para instanciar objetos novos; não podem ser usados para atualizar instâncias já existentes, como a instrução with permite.

Por exemplo, ao criar uma nova instância de um objeto você pode usar o inicializador de objeto:

var car = new Car
{
    Make = "Mazda",
    Model = "MX5",
    Year = 1989
};

Mas ao atualizar o objeto não há uma sintaxe simplificada equivalente. Você teria que referenciar o objeto em cada atribuição ou chamada de membro, assim:

car.Make = "Aston Martin";
car.Model = "DBS";
car.Year = 1967;

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Voltar