Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Estrutura C#

Estrutura C#


Neste tutorial, você aprenderá sobre estruturas em C# com a ajuda de exemplos.

A struct (estrutura) é como uma classe em C# que é usada para armazenar dados. No entanto, ao contrário das classes, um struct é um tipo de valor.

Suponha que queremos armazenar o nome e a idade de uma pessoa. Podemos criar duas variáveis:name e idade e armazenar valor.

No entanto, suponha que queremos armazenar as mesmas informações de várias pessoas.

Nesse caso, criar variáveis ​​para uma pessoa individual pode ser uma tarefa tediosa. Para superar isso, podemos criar uma estrutura que armazena name e idade . Agora, essa estrutura pode ser usada para todas as pessoas.


Definir struct em C#


Em C#, usamos o struct palavra-chave para definir uma estrutura. Por exemplo,
struct Employee  {
  public int id;
}

Aqui, id é um campo dentro da estrutura. Um struct pode incluir métodos, indexadores, etc.

Declarar variável de estrutura


Antes de usarmos uma estrutura, primeiro precisamos criar uma variável de estrutura. Usamos um nome de estrutura com uma variável para declarar uma variável de estrutura. Por exemplo,
struct Employee {
  public int id;
}
...

// declare emp of struct Employee
Employee emp;

No exemplo acima, criamos uma estrutura chamada Employee . Aqui, declaramos uma variável emp da estrutura Funcionário .

Acessar estrutura C#


Usamos a variável struct junto com o . operador para acessar membros de uma estrutura. Por exemplo,
struct Employee {
  public int id;
}
... 
// declare emp of struct Employee
Employee emp;

// access member of struct      
emp.id = 1;

Aqui, usamos a variável emp de uma estrutura Funcionário com . operador para acessar membros do Employee .
emp.id = 1;

Isso acessa o id campo da estrutura Funcionário .

Observação :tipos de dados primitivos como int , bool , float são estruturas predefinidas em C#.

Exemplo:Estrutura C#

using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public int id;

    public void getId(int id) {
      Console.WriteLine("Employee Id: " + id);
    }
  }
 
  class Program {
    static void Main(string[] args) {
 
      // declare emp of struct Employee
      Employee emp;
      
      // accesses and sets struct field
      emp.id = 1;

      // accesses struct methods
      emp.getId(emp.id);

      Console.ReadLine();
    }
  }
}

Saída
Employee Id: 1

No programa acima, criamos uma estrutura chamada Employee . Ele contém um campo id e um método getId() .

Dentro do Programa class, declaramos uma variável emp da estrutura Funcionário . Em seguida, usamos o emp variável para acessar campos e métodos da classe.

Observação :Também podemos instanciar uma estrutura usando o new palavra-chave. Por exemplo,
Employee emp = new Employee();

Aqui, esta linha chama o construtor sem parâmetros do struct e inicializa todos os membros com valores padrão.

Construtores em estrutura C#


Em C#, um struct também pode incluir construtores. Por exemplo,
struct Employee {

  public int id;

  // constructor 
  public Employee(int employeeId) {
   id = employeeId
  }
}

Aqui, criamos um construtor parametrizado Employee() com o parâmetro employeeId .

Observação :não podemos criar construtores sem parâmetros em C# versão 9.0 ou inferior.

Exemplo:Construtor em estruturas C#

using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public int id;
    
    public string name;

    // parameterized constructor
    public Employee(int employeeId, string employeeName) {
   
      id = employeeId;
      name = employeeName;
    }
  }
 
  class Program {
    static void Main(string[] args) {
 
      // calls constructor of struct
      Employee emp = new Employee(1, "Brian");

      Console.WriteLine("Employee Name: " + emp.name);
      Console.WriteLine("Employee Id: " + emp.id);

      Console.ReadLine();
    }
  }
}

Saída
Employee Name: Brian
Employee Id: 1

No exemplo acima, criamos um construtor parametrizado dentro do Employee estrutura. Dentro do construtor, atribuímos os valores dos campos:id e nome .



Observe a linha,
Employee emp = new Employee(1, "Brian");

Como nas classes C#, estamos usando o new palavra-chave para chamar o construtor. Aqui, 1 e "Brian" são argumentos passados ​​para o construtor, onde são atribuídos aos parâmetros employeeID e employeeName respectivamente."

Observação :Devemos atribuir o valor para cada campo de struct dentro do construtor parametrizado. Por exemplo,
// error code
public Employee(int employeeID, employeeName) {
  id = employeeID;
}

Aqui, não atribuímos o valor para o nome campo. Portanto, o código gerará um erro.

Propriedades na estrutura C#


Também podemos usar propriedades dentro de uma estrutura C#. Por exemplo,
using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public int id;
    
    // creates property
    public int Id {

      // returns id field
      get {
        return id;
      }

      // sets id field
      set {
        id = value;
      }
    }
  }
 
  class Program {
    static void Main(string[] args) {
 
      // calls the constructor of struct
      Employee emp = new Employee();

      emp.Id = 1;
      Console.WriteLine("Employee Id: " + emp.Id);

      Console.ReadLine();

    }
  }
}

Saída
Employee Id: 1

No exemplo acima, temos Id propriedade dentro do Funcionário estrutura.

O obter retorna o id campo e o conjunto método atribui o valor ao id campo.

Diferença entre class e struct em C#


Em C#, classes e estruturas são semelhantes. No entanto, existem algumas diferenças entre eles.

Uma classe é um tipo de referência, enquanto um struct é um tipo de valor. Por exemplo,
using System;
namespace CsharpStruct {
 
  // defining class
  class Employee {
    public string name;

  }
 
  class Program {
    static void Main(string[] args) {

      Employee emp1 = new Employee();
      emp1.name = "John";

      // assign emp1 to emp2
      Employee emp2 = emp1;
      emp2.name = "Ed";
      Console.WriteLine("Employee1 name: " + emp1.name);

      Console.ReadLine();
    }
  }
}

Saída
Employee1 name: Ed

No exemplo acima, atribuímos o valor de emp1 para emp2 . O emp2 objeto refere-se ao mesmo objeto que emp1 . Então, uma atualização em emp2 atualiza o valor de emp1 automaticamente.

É por isso que uma classe é um tipo de referência .

Ao contrário das classes, quando atribuímos uma variável de estrutura a outra, o valor da estrutura é copiado para a variável atribuída. Portanto, atualizar uma variável de estrutura não afeta a outra. Por exemplo,
using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public string name;

  }
 
  class Program {
    static void Main(string[] args) {

      Employee emp1 = new Employee();
      emp1.name = "John";

      // assign emp1 to emp2
      Employee emp2 = emp1;
      emp2.name = "Ed";
      Console.WriteLine("Employee1 name: " + emp1.name);
      
      Console.ReadLine();
    }
  }
}

Saída
Employee1 name: John

Quando atribuímos o valor de emp1 para emp2 , um novo valor emp2 é criado. Aqui, o valor de emp1 é copiado para emp2 . Então, mude em emp2 não afeta emp1 .

É por isso que struct é um tipo de valor .

Além disso, a herança não é possível nas estruturas, enquanto é um recurso importante das classes C#.

Linguagem C

  1. Estrutura C
  2. Estruturas e ponteiros C
  3. C Estrutura e Função
  4. Como evitar perder no competitivo “futuro do trabalho”
  5. Estrutura C++ com exemplo
  6. Por que é hora de melhorar a programação dos funcionários
  7. Para reduzir o risco, considere a nova verificação do histórico do funcionário
  8. Quatro maneiras de reforçar o engajamento dos funcionários em meio ao COVID-19
  9. DVIRC dá as boas-vindas a novas contratações, promove funcionários valiosos
  10. Uma categoria de tecnologia emergente empolgante:análise de produtividade do funcionário