Программирование на языке C#


Download 1.19 Mb.
Pdf ko'rish
bet56/66
Sana23.10.2023
Hajmi1.19 Mb.
#1717181
1   ...   52   53   54   55   56   57   58   59   ...   66
Bog'liq
Программирование на языке C#

12. 
Структуры 
Структура – это собственный тип данных, по назначению, способу 
реализации и использования очень напоминающий классы, но 
имеющий ряд специфических особенностей (различий): 
1. Самое главное отличие заключается в том, что класс относится к 
ссылочному типу данных, а структура относится к типу значения. 
Хранить и обращаться к данным по значению оказывается быстрее, 
чем по ссылке (когда на доступ к объекту вынужденно используются 
дополнительные вычислительные ресурсы и оперативная память). 
Однако при передаче структуры в функцию происходит копирование 
всех данных (в отличие от передачи экземпляра класса, когда 
копируется только адрес). Таким образом, структуры рекомендуется 
использовать для небольших типов данных (объектов), редко 
передаваемых в функции сами по себе (имеется ввиду, при явном их 
указании в качестве аргумента функции). 
2. При объявлении структуры используется ключевое слово 
struct

struct structName { 
// объявления членов 

3. В структуре не поддерживается переопределение конструктора 
по умолчанию, т.е. следующий код вызовет ошибку: 
struct Book { 
Book() { } 

94 


4. В структурах нельзя инициализировать переменные в месте их 
объявления, т.е. следующий код вызовет ошибку: 
struct Book{ 
public string name = "Война и мир"; 

5. Структуры не поддерживают наследование (их нельзя 
наследовать от других структур (или классов) или использовать в 
качестве базовых для других структур или классов). Однако в 
структуре можно реализовать один или более интерфейс (для описания 
обязательных для реализации функций): 
interface IBook{ 
void Show (); 

struct Book : IBook { 
public string name; 
public void Show(){ 
Console.WriteLine(name); 


6. При использовании оператора 
new
для создания объекта 
(экземпляра) структуры вызывается конструктор по умолчанию, т.е. 
следующие два оператора идентичны: 
Book book; 
Book book = new Book(); 
В приведенном ниже примере использования структур создается 
три объекта 
Book
, при этом для первой и третьей книги вызывается 
конструктор по умолчанию, а потом задается имя книги. Для второй 
книги вызывается конструктор с одним аргументом. После 
инициализации названия всех книг выводятся в консоль с помощью 
вызова функции 
Show

struct Book { 
public string name; 
public Book(string name) { 
this.name = name; 

public void Show() { 
Console.WriteLine(name); 


static void Main(string[] args) { 
Book book1; 
book1.name = "Преступление и наказание "; 
Book book2 = new Book("Война и мир"); 
95 


Book book3 = new Book(); 
book3.name = "Собачье сердце"; 
book1.Show(); 
book2.Show(); 
book3.Show(); 

Очень часто структуры используются для группировки данных в 
классах, например, для хранения времени, выражаемого в виде 
некоторого количества секунд, минут и часов: 
struct Time {
public int hours, minutes, seconds; 
}
class WorkingTime {
private Time currentTime; 
public WorkingTime(int h, int m, int s) {
this.currentTime.hours = h; 
this.currentTime.minutes = m; 
this.currentTime.seconds = s; 
}


Download 1.19 Mb.

Do'stlaringiz bilan baham:
1   ...   52   53   54   55   56   57   58   59   ...   66




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling