C# - Estruturas
Em C#, uma estrutura é um tipo de dados do tipo valor. Ele ajuda você a fazer com que uma única variável mantenha dados relacionados de vários tipos de dados. A estrutura palavra-chave é usada para criar uma estrutura.
As estruturas são usadas para representar um registro. Suponha que você queira acompanhar seus livros em uma biblioteca. Você pode querer rastrear os seguintes atributos sobre cada livro -
- Título
- Autor
- Assunto
- ID do livro
Definindo uma estrutura
Para definir uma estrutura, você deve usar a instrução struct. A instrução struct define um novo tipo de dados, com mais de um membro para seu programa.
Por exemplo, aqui está a maneira como você pode declarar a estrutura Book −
struct Books { public string title; public string author; public string subject; public int book_id; };
O programa a seguir mostra o uso da estrutura −
Demonstração ao vivo
using System; struct Books { public string title; public string author; public string subject; public int book_id; }; public class testStructure { public static void Main(string[] args) { Books Book1; /* Declare Book1 of type Book */ Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ Book1.title = "C Programming"; Book1.author = "Nuha Ali"; Book1.subject = "C Programming Tutorial"; Book1.book_id = 6495407; /* book 2 specification */ Book2.title = "Telecom Billing"; Book2.author = "Zara Ali"; Book2.subject = "Telecom Billing Tutorial"; Book2.book_id = 6495700; /* print Book1 info */ Console.WriteLine( "Book 1 title : {0}", Book1.title); Console.WriteLine("Book 1 author : {0}", Book1.author); Console.WriteLine("Book 1 subject : {0}", Book1.subject); Console.WriteLine("Book 1 book_id :{0}", Book1.book_id); /* print Book2 info */ Console.WriteLine("Book 2 title : {0}", Book2.title); Console.WriteLine("Book 2 author : {0}", Book2.author); Console.WriteLine("Book 2 subject : {0}", Book2.subject); Console.WriteLine("Book 2 book_id : {0}", Book2.book_id); Console.ReadKey(); } }
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Book 1 title : C Programming Book 1 author : Nuha Ali Book 1 subject : C Programming Tutorial Book 1 book_id : 6495407 Book 2 title : Telecom Billing Book 2 author : Zara Ali Book 2 subject : Telecom Billing Tutorial Book 2 book_id : 6495700
Recursos de estruturas C#
Você já usou uma estrutura simples chamada Books. As estruturas em C# são bem diferentes daquelas em C ou C++ tradicionais. As estruturas C# têm os seguintes recursos -
-
As estruturas podem ter métodos, campos, indexadores, propriedades, métodos de operador e eventos.
-
As estruturas podem ter construtores definidos, mas não destruidores. No entanto, você não pode definir um construtor padrão para uma estrutura. O construtor padrão é definido automaticamente e não pode ser alterado.
-
Ao contrário das classes, as estruturas não podem herdar outras estruturas ou classes.
-
As estruturas não podem ser usadas como base para outras estruturas ou classes.
-
Uma estrutura pode implementar uma ou mais interfaces.
-
Os membros da estrutura não podem ser especificados como abstratos, virtuais ou protegidos.
-
Quando você cria um objeto struct usando o Novo operador, ele é criado e o construtor apropriado é chamado. Ao contrário das classes, as estruturas podem ser instanciadas sem usar o operador New.
-
Se o operador Novo não for usado, os campos permanecerão sem atribuição e o objeto não poderá ser usado até que todos os campos sejam inicializados.
Classe versus Estrutura
Classes e Estruturas têm as seguintes diferenças básicas -
- classes são tipos de referência e structs são tipos de valor
- estruturas não suportam herança
- estruturas não podem ter construtor padrão
À luz das discussões acima, vamos reescrever o exemplo anterior -
Demonstração ao vivo
using System; struct Books { private string title; private string author; private string subject; private int book_id; public void getValues(string t, string a, string s, int id) { title = t; author = a; subject = s; book_id = id; } public void display() { Console.WriteLine("Title : {0}", title); Console.WriteLine("Author : {0}", author); Console.WriteLine("Subject : {0}", subject); Console.WriteLine("Book_id :{0}", book_id); } }; public class testStructure { public static void Main(string[] args) { Books Book1 = new Books(); /* Declare Book1 of type Book */ Books Book2 = new Books(); /* Declare Book2 of type Book */ /* book 1 specification */ Book1.getValues("C Programming", "Nuha Ali", "C Programming Tutorial",6495407); /* book 2 specification */ Book2.getValues("Telecom Billing", "Zara Ali", "Telecom Billing Tutorial", 6495700); /* print Book1 info */ Book1.display(); /* print Book2 info */ Book2.display(); Console.ReadKey(); } }
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Title : C Programming Author : Nuha Ali Subject : C Programming Tutorial Book_id : 6495407 Title : Telecom Billing Author : Zara Ali Subject : Telecom Billing Tutorial Book_id : 6495700
Linguagem C
- Estruturas e classes em C ++
- Semáforos:serviços utilitários e estruturas de dados
- Crítica do livro:digitalize ou morra
- Um futuro muito humano
- Tecnologia de armazenamento de dados magnéticos de última geração
- 17 Melhores livros de programação para ler em 2021
- Java - Estruturas de Dados
- C - Estruturas
- C - typedef
- Estruturas de dados C++