You are on page 1of 12

Лекція 5.

Структури
Структури
Мова C# дає можливість оголошувати
структури.
Структура – оголошений програмістом
тип даних, який може містити змінні та
методи.
Модифікатор
struct Student
{ доступу public
public string FirstName; забезпечує
public string LastName; можливість
public int Age;
} доступу до полів
структури
Структури
Структура може містити і методи:
struct Student
В методах можна
{
public string FirstName; звертатися до полів
public string LastName; та інших методів цієї
public int Age; ж структури
безпосередньо за
public void PrintInfo() іменем
{
Console.WriteLine("Прізвище: {0}", LastName);
Console.WriteLine("Ім'я: {0}", FirstName);
Console.WriteLine("Вік: {0}", Age);
}
}
Структури
Щоб використати структуру потрібно
створити змінну типу структури:
class Program
{
static void Main(string[] args)
{
Student stud;
stud.LastName = "Іванов";
stud.FirstName = "Іван";
stud.Age = 18;
stud.PrintInfo();
}
}
Структури
Можна створювати масиви структур:
static void Main(string[] args)
{
Student []stud = new Student[3];
stud[0].LastName = "Іванов";
stud[0].FirstName = "Іван";
stud[0].Age = 18;
...
for(int i = 0; i < stud.Length; i++)
stud[i].PrintInfo();
}
Структури
Структура може містити спеціальний
метод, який називається конструктором.
Конструктор призначений для ініціалізації
полів структури при створенні змінної:
Student stud =
new Student("Ivan", "Ivanov", 18);

Викликається конструктор,
якому передаються три
параметри
Структури
Конструктор описується як метод, що:
- нічого не повертає, навіть типу void;
- ім’я конструктора має співпадати з
назвою структури.
struct Student
{

public Student(string firstName, string lastName, int age)
{
FirstName = firstName;
LastName = lastName;
Age = age;
}
public void PrintInfo() { … }
}
Структури
Структура може містити декілька
конструкторів, які відрізняються кількістю
та типами параметрів.
struct Student {

public Student(string firstName, string lastName, int age) {
FirstName = firstName;
LastName = lastName;
Age = age;
}
public Student(string firstName, string lastName) {
FirstName = firstName;
LastName = lastName;
Age = 18;
}
}
Структури
struct Student {
public string FirstName;
public string LastName;
public int Age;
public Student(string firstName, string lastName, int age) {
FirstName = firstName;
LastName = lastName;
Age = age;
}
public void PrintInfo() {
Console.WriteLine("Прізвище: {0}", LastName);
Console.WriteLine("Ім'я: {0}", FirstName);
Console.WriteLine("Вік: {0}", Age);
}
}
class Program {
static void Main(string[] args) {
Student stud = new Student("Ivan", "Ivanov", 18);
} }
Структури
При створенні екземпляра структури за
допомогою new автоматично
підбиратиметься конструктор для виклику:
Student st1 = new Student();
Student st2 = new Student("Ivan", "Ivanenko");
Student st3 = new Student("Ivan", "Ivanenko", 20);
struct Student {

public Student(string firstName, string lastName, int age)
{

}
public Student(string firstName, string lastName) {

}
Конструктор по
public Student() { замовчуванню не можна
… оголошувати в структурах
}
Структури
Не можна ініціалізувати поля структури безпосередньо
при їх оголошенні, наприклад, наступним чином:

struct Student {
public string FirstName = "Ivan"; //! Помилка
public string LastName = "Ivanov"; //! Помилка
public int Age = 18; //! Помилка

}
Для опрацювання
вдома:
1) https://metanit.com/sharp/tutorial/2.13.php

You might also like