Blog

struct em C#

Nesta publicação aprende-se a trabalhar com o struct para que se possa usar esses mesmos conhecimentos e assim evoluir.

  • as structs (estruturas) são quase iguais às classes, no entanto, são bem mais limitadas;
  • as diferenças são que:
    • quando estamos a falar de estruturas, os campos (atributos) não podem ser inicializados sem que esses mesmos sejam declaradas como const ou static;
    • uma estrutura não pode declarar um construtor padrão (um construtor sem parâmetros);
    • quando uma estrutura é atribuída a uma nova variável, todos os dados são copiados e qualquer modificação na nova cópia, não é refletida na estrutura original;
    • as estruturas são do tipo valor e classes são do tipo referência;
    • as estruturas podem ser instanciadas sem usar o new;
    • as estruturas podem declarar construtores com parâmetros;
    • uma estrutura não pode herdar uma outra estrutura ou classe e tambem não pode ser base de uma classe;
    • uma estrutura pode implementar interfaces;
    • uma estrutura pode tomar valor de um valor nulo (null).
using System;

namespace Base {
  class Struct {
    public void Run() {
      var estrutura = new Estrutura();
      estrutura.Numero = 200;

      // O número precisa de ser >= 0 e <= 100.
    }
  }

  struct Estrutura : INumero {
    private int numero;

    public int Numero {
      set {
        if (value >= 0 && value <= 100) {
          numero = value;
          ImprimirNumero();
        }
        else
          Console.WriteLine("O número precisa de ser >= 0 e <= 100.");
      }
    }

    public void ImprimirNumero() {
      Console.WriteLine($"Número: {numero}");
    }
  }

  interface INumero {
    void ImprimirNumero();
  }
}

Não te esqueças de assistir ao vídeo e podes sempre ler esta publicação em inglês.

Happy coding!

Anterior Seguinte