Em C#, as duas principais categorias de tipo são tipos de valor (como estruturas) e tipos de referência (como classes). Como uma estrutura (ou struct) é um tipo de valor, ela é centrada em dados.
Um struct pode armazenar atributos e métodos relacionados que, preferencialmente, não focam no comportamento.
Como declarar um struct
Cada declaração de struct deve ter o estrutura palavra-chave. Preceda a palavra-chave struct com um modificador de acesso e inclua um nome e um par de chaves depois dele. Veja como declarar uma struct chamada Game:
público struct Jogo {}
Como preencher um struct
Uma estrutura armazena dados dentro de suas chaves, na forma de atributos, construtores, métodos, eventos, etc.
público jogo de estrutura
{
público nome da cadeia;
público descrição da cadeia;
públicoint níveis;públicoJogo(nome da string, descrição da string, int níveis){
isto.nome = nome;
isto.descrição = descrição;
isto.níveis = níveis;
}
string de substituição pública ToString() => $"Nome: {name}, Descrição: {description}, Níveis: {levels}";
}
A estrutura Game agora tem três atributos, um construtor e um método. Estes são três componentes primários de uma estrutura C#, que também são três dos componentes primários de um classe C#.
Como criar uma variável de estrutura
Cada instância de uma estrutura C# é conhecida como variável. Existem duas maneiras de criar um variável de uma estrutura. Você pode usar um construtor:
Jogo jogo1 = novo Jogo("Picaréseg GO", "Lorem ipsum dolor sit amet.", 50);
Ou você pode atribuir valores a atributos individuais de uma estrutura usando o operador ponto (.):
Jogo jogo1;
game1.name = "Picaréseg GO";
jogo1.descrição = "Lorem ipsum dolor sit amet.";
game1.levels = 50;
Ambas as abordagens alcançam o mesmo resultado. O código acima usa C# para desenvolver um objeto de jogo chamado Pokémon GO que possui uma breve descrição e 50 níveis. Então, agora você pode usar o objeto game1.
Console.WriteLine(jogo1.Para sequenciar());
Isso imprime a seguinte saída no console:
Nome: Pokémon GO, Descrição: Lorem ipsum dolor sit amet., Níveis: 50
As diferenças entre uma estrutura e uma classe
Uma struct e uma classe têm uma aparência semelhante, mas têm muitas diferenças notáveis. Eles usam palavras-chave diferentes para declaração. E structs não suportam referências nulas nem herança.