Использование структур

Массивы состоят из элементов одного типа. В тех случаях, когда единообразно нужно обрабатывать наборы данных, представляющих совокупность величин различного типа, рассматривая их как единое целое, целесообразно использовать структуры.

Структуры определяются с помощью ключевого слова struct . Далее указывается имя структуры и в фигурных скобках определяются члены структуры. Структуры могут содержать произвольное число различных видов членов: полей, методов и др.

Классы и структуры являются двумя основными конструкциями системы общих типов. Каждая из них по сути является структурой данных, инкапсулирующей набор данных (поля) и поведение (методы). Данные и поведение являются членами класса или структуры. Их объединение в одном типе называется инкапсуляцией. Согласно принципу инкапсуляции, класс или структура может задать уровень доступности каждого из членов по отношению к коду вне класса или структуры. Уровень доступа public (открытый доступ) использован в нижеследующих примерах. Другие уровни доступа здесь не рассматриваются.

В качестве членов структур (в дальнейшем классов) в настоящем пособии будут использоваться только поля и методы.

Поле – это переменная, объявленная в структуре. У поля есть имя и тип. Метод – это функция, определенная в структуре.

Рассмотрим определение структуры, в которой содержатся два поля разных типов:

struct Sportsmen

{

public string famile;

public int rez;

}

Здесь описана структура с именем Sportsmen с двумя полями: famile типа string и rez типа int . Описание структуры располагается вне метода Main. В связи с этим уровень доступа к полям установлен максимальный (public – открытый доступ), что дает возможность доступа к полям из метода Main.

Экземпляр структуры создается в методе Main как обычно указанием типа перед именем переменной:

Sportsmen temp;

Далее в поля этой переменной можно поместить значения (инициализировать поля структуры). Для доступа к полю нужно указать имя переменной и после точки имя поля. Например,

using System;

class Program

{

struct Sportsmen

{

public string famile;

public int rez;

}

static void Main()

{

Sportsmen temp;

temp.famile = "Иванов";

temp.rez = 77;

Console.WriteLine(

"Фам {0}\t Результат {1:f2}",

temp.famile, temp.rez);

Console.ReadKey();

}

}

Или

using System;

struct Sportsmen

{

public string famile;

public int rez;

}

class Program

{

static void Main()

{

Sportsmen temp;

temp.famile = "Иванов";

temp.rez = 7;

Console.WriteLine(

"Фам {0}\t Результат {1:f2}",

temp.famile, temp.rez);

Console.ReadKey();

}

}

Объявление массива структур. Например,

Sportsmen[] sp = new Sportsmen[5];

Здесь объявлен массив sp из пяти элементов, каждый из которых содержит два поля.

Использование структур делает представление данных более компактным и наглядным. Структуры можно пересылать одну в другую, если они идентичны. Возможен, например, оператор

sp[0] = temp;