На этом шаге мы приведем пример использования структуры.
Программа с описанием структуры, в которой создаются и используются экземпляры структуры, представлена в примере ниже.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace pr192_1 { // Структура: struct MyStruct { // Целочисленное поле: public int code; // Текстовое поле: public string name; // Конструктор: public MyStruct(int n, string t) { code = n; // Значение целочисленного поля name = t; // Значение текстового поля } // Метод: public void show() { // Отображение значений полей: Console.WriteLine("Поля \"{0}\" и {1}", name, code); } } // Класс с главным методом: class Program { // Главный метод: static void Main() { // Создание экземпляра структуры: MyStruct A; // Присваивание значений полям: A.code = 100; A.name = "Экземпляр A"; // Вызов метода: A.show(); // Создание экземпляра структуры: MyStruct B = new MyStruct(200, "Экземпляр B"); // Вызов метода: B.show(); // Присваивание экземпляров: A = B; // Присваивание значения полю: B.code = 300; // Вызов методов: A.show(); B.show(); // Задержка: Console.ReadLine(); } } }
Результат выполнения программы представлен ниже:
Рис.1. Результат выполнения программы
Мы описываем структуру MyStruct следующим образом:
struct MyStruct { // Целочисленное поле: public int code; // Текстовое поле: public string name; // Конструктор: public MyStruct(int n, string t) { code = n; // Значение целочисленного поля name = t; // Значение текстового поля } // Метод: public void show() { // Отображение значений полей: Console.WriteLine("Поля \"{0}\" и {1}", name, code); } }
У этой структуры есть два открытых поля: целочисленное (тип int) поле code и текстовое (тип string) поле name. Мы также описали конструктор структуры с двумя аргументами (целое число и текст), которые определяют значения полей создаваемого экземпляра. Таким образом, при создании экземпляров структуры мы можем использовать либо конструктор по умолчанию (без аргументов), либо конструктор с двумя аргументами. Еще в структуре описан метод show(). Он не имеет аргументов и не возвращает результат. При вызове метод отображает в консольном окне значения полей экземпляра, из которого он был вызван.
В главном методе программы командой
MyStruct A;
MyStruct A;
MyStruct A = new MyStruct(); .
Присваивание значений полям осуществляется командами
A.code = 100;
A.name = "Экземпляр A"; .
После этого командой
A.show();
Еще один экземпляр структуры создается командой
MyStruct B = new MyStruct(200, "Экземпляр B"); .
В данном случае экземпляр B создается вызовом конструктора с двумя аргументами, и поля экземпляра получают значения, переданные конструктору в качестве аргументов. Проверяем значения полей с помощью команды
B.show(); .
В программе есть пример операции присваивания: командой
A = B;
B.code = 300;
A.show();
B.show(); .
Далее мы рассмотрим некоторые особенности использования структур на практике.
На следующем шаге мы рассмотрим массив как поле структуры.