На этом шаге мы рассмотрим особенности использования массива в качестве поля структуры.
Хотя структура сама по себе относится к типу данных с прямым доступом к значению, среди полей структуры могут быть значения ссылочных типов. Одна из таких ситуаций - когда поле структуры является массивом (ссылкой на массив). Соответствующая программа представлена в примере ниже.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace pr193_1 { // Структура: struct MyStruct { // Ссылка на символьный массив: public char[] symbs; // Метод для отображения содержимого массива: public void show() { for(int k = 0; k < symbs.Length; k++) { Console.Write("|" + symbs[k]); } Console.WriteLine("|"); } } // Класс с главным методом: class Program { // Главный метод: static void Main() { // Создание экземпляров структуры: MyStruct A, B; // Полю присваивается ссылка на массив A.symbs = new char[7]; // Заполнение массива: for(int k = 0; k < A.symbs.Length; k++) { A.symbs[k] = (char)('A' + k); } Console.WriteLine("Экземпляр A:"); // Содержимое массива: A.show(); // Присваивание экземпляров структуры: B = A; Console.WriteLine("Экземпляр B:"); // Содержимое массива: B.show(); // Присваивание значений элементам массива: A.symbs[0] = 'X'; B.symbs[B.symbs.Length - 1] = 'Y'; Console.WriteLine("Экземпляр A:"); // Содержимое массива: A.show(); Console.WriteLine("Экземпляр B:"); // Содержимое массива: B.show(); // Задержка: Console.ReadLine(); } } }
Ниже показан результат выполнения программы:
Рис.1. Результат выполнения программы
В программе мы описали структуру MyStruct, у которой есть открытое поле symbs, являющееся ссылкой на символьный массив. Также в структуре описан метод show(), который при вызове отображает в консольном окне содержимое массива, на который ссылается поле symbs экземпляра структуры.
В главном методе программы командой
MyStruct A, B;
A.symbs = new char[7];
A.show(); .
B = A;
B.show();
A.symbs[0] = 'X';
B.symbs[B.symbs.Length - 1] = 'Y'; .
A.show();
B.show();
На следующем шаге мы рассмотрим массив экземпляров структуры.