Structs em C#

Structs são tipos de valores que podem ser usados para  encapsular pequenos grupos de variáveis relacionadas. Structs são similares as classes entretanto possui suas restrições.

O C# provê diversas formas de armazenar dados como structs, classes, arrays, collections. Cada forma possui um requisito e restrição de como o desenvolvedor pode implementar. Para saber identificar a necessidade do uso de uma struct basta abstrair um objeto da vida real que possua características.

Um exemplo simples, consideramos um estudante do mundo real cujo objetivo seja modelar no seu codigo, existem 2 formas para a modelagem utilizando classes ou criando uma estrutura(Struct). Para criação de uma estrutura, basta pensarmos nas características que queremos no modelo. Consideramos as seguintes características para estudante:

  • Nome
  • SobreNome
  • Nota1
  • Nota2
  • Nota3
  • Media

Codificando nossa estrutura acima temos o seguinte modelo:

<br />public struct Estudante<br /> {<br />   public string Nome;<br />   public string Sobrenome;<br />   public double Nota1;<br />   public double Nota2;<br />   public double Media;<br /><br />}<br /><br />

Para usar uma estrutura(Struct) no código, o desenvolvedor precisa instancia-la. Observe o código abaixo de como instanciar um estudante:

Estudante estudante = new Estudante();

Tendo o código acima, já podemos trabalhar com a estrutura sem desafios.

//Instanciando a estrutura

Estudante estudante = new Estudante();

//Inserindo valores para as propriedades da estrutura.

<br />estuadante.Nome = “Joao”;<br />estudante.SobreNome = “Pereira”;<br />estudante.Nota1 = 10;<br />

Structs não se limitam em apenas propriedades, podem incluir funções, contrutores, contantes indexes, operadores, eventos e interfaces. Uma diferença significativa entre Struct e classes é notada no uso de seu construtor. Abaixo alguns pontos sobre o uso de construtores em structs:

  • Construturoes são opcionais, mas se for incluído deve conter parametros.
  • Campos não podem ser inicializados dentro do escopo da struct.
  • Campos podem ser inicializados SOMENTE quando há o uso de construtores ou depois que a struct é declarada.
  • Membros privados podem ser inicilizados somente com o construtor.

  // Ao criar um construtor da estrutura, é obrigatorio  todos os seus atributos serem argumentos. Caso contrário ocorre um erro.

public Estudante(string nome1,string sobrenome1,double nota1,double nota2,double media)     {<br />  this.Nome = nome1<br />  this.Sobrenome = sobrenome1;<br />  this.Nota1 = nota1;<br />  this.Nota2 = nota2;<br />  this.Media = media;<br />} 

Abaixo um exemplo real de como utilizar struct dentro de um projeto:

&lt;/pre&gt;<br />public class Program<br /> {<br />    public struct Estudante<br />    {<br />      public string Nome;<br />      public string Sobrenome;<br />      public double Nota1;<br />      public double Nota2;<br />      public double Media;<br /><br />  public Estudante(string nome1,string sobrenome1,double nota1,double nota2,double media)<br />  {<br />    this.Nome = nome1;<br />    this.Sobrenome = sobrenome1;<br />    this.Nota1 = nota1;<br />    this.Nota2 = nota2;<br />    this.Media = media;<br />  }<br /> }<br /><br /> public static void Main(string[] args)<br />  {<br />   Estudante estudante = new Estudante();<br />   Console.Write("Informe o nome");<br />   var nome = Console.ReadLine();<br />   estudante.Nome = nome;<br />   Console.Write(estudante.Nome);<br />   Console.ReadLine();<br />  }<br /> }<br />

Referencias: Programming in C# (Wrox Programmer to Programmer)

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s