As estruturas do C# são uma vez que uma opção ligeiro, mas poderosa, às classes. Descubra uma vez que usar esse tipo de dados útil.
Em C#, as duas principais categorias de tipo são tipos de valor (uma vez que estruturas) e tipos de referência (uma vez que classes). Porquê 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.
Porquê declarar um struct
Cada enunciação de struct deve ter o estrutura palavra-chave. Preceda a palavra-chave struct com um modificador de aproximação e inclua um nome e um par de chaves depois dele. Veja uma vez que declarar uma struct chamada Game:
public struct Game {}
Porquê preencher um struct
Uma estrutura armazena dados dentro de suas chaves, na forma de atributos, construtores, métodos, eventos, etc.
public struct Game
{
public string name;
public string description;
public int levels;public Game (string name, string description, int levels) {
this.name = name;
this.description = description;
this.levels = levels;
}
public override string ToString() => $"Name: {name}, Description: {description}, Levels: {levels}";
}
A estrutura Game agora tem três atributos, um construtor e um método. Esses são três componentes principais de uma estrutura C#, que também são três dos componentes principais de uma classe C#.
Porquê fabricar uma variável de estrutura
Cada instância de uma estrutura C# é conhecida uma vez que variável. Existem duas maneiras de fabricar um variável de uma estrutura. Você pode usar um construtor:
Game game1 = new Game("Pokémon GO", "Lorem ipsum dolor sit amet.", 50);
Ou você pode atribuir valores a atributos individuais de uma estrutura usando o operador ponto (.):
Game game1;
game1.name = "Pokémon GO";
game1.description = "Lorem ipsum dolor sit amet.";
game1.levels = 50;
Ambas as abordagens alcançam o mesmo resultado. O código supra usa C# para desenvolver um objeto de jogo chamado Pokémon GO que possui uma breve descrição e 50 níveis. Portanto, agora você pode usar o objeto game1.
Console.WriteLine(game1.ToString());
Isso imprime a seguinte saída no console:
Name: Pokémon GO, Description: Lorem ipsum dolor sit amet., Levels: 50
As diferenças entre uma estrutura e uma classe
Um struct e uma classe têm uma ar semelhante, mas têm muitas diferenças notáveis. Eles usam palavras-chave diferentes para enunciação. E structs não suportam referências nulas nem legado.