Sobes.tech
Junior — Middle

A estrutura torna-se num tipo de referência ao usar as palavras-chave ref ou out nos métodos?

sobes.tech IA

Resposta da IA

A estrutura (struct) em C# permanece sempre um tipo de valor, mesmo que seja passada para um método com as palavras-chave ref ou out. Essas palavras-chave permitem passar uma referência à variável da estrutura, ou seja, o método pode modificar a própria estrutura, e não uma cópia dela, mas o tipo de dado não se torna um tipo de referência.

Exemplo:

struct Point { public int X, Y; }

void UpdatePoint(ref Point p) {
    p.X = 10;
    p.Y = 20;
}

Point pt = new Point();
UpdatePoint(ref pt); // pt será alterado

Aqui, Point continua sendo um tipo de valor, mas graças ao ref, o método tem acesso à instância original, não a uma cópia.