Kniga-Online.club
» » » » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Читать бесплатно Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

  // Поля структуры.

  public int X;

  public int Y;

  // Добавить 1 к позиции (X, Y).

  public void Increment()

  {

    X++; Y++;

  }

  // Вычесть 1 из позиции (X, Y).

  public void Decrement()

  {

    X--; Y--;

  }

  // Отобразить текущую позицию.

  public void Display()

  {

    Console.WriteLine("X = {0}, Y = {1}", X, Y);

  }

}

Здесь определены два целочисленных поля (X и Y) с использованием ключевого слова public, которое является модификатором управления доступом (их обсуждение будет продолжено в главе 5). Объявление данных с ключевым словом public обеспечивает вызывающему коду возможность прямого доступа к таким данным через переменную типа Point (посредством операции точки).

На заметку! Определение открытых данных внутри класса или структуры обычно считается плохим стилем программирования. Взамен рекомендуется определять закрытые данные, доступ и изменение которых производится с применением открытых свойств. Более подробные сведения приведены в главе 5.

Вот код, который позволяет протестировать тип Point:

Console.WriteLine("***** A First Look at Structures *****n");

// Создать начальную переменную типа Point.

Point myPoint;

myPoint.X = 349;

myPoint.Y = 76;

myPoint.Display();

// Скорректировать значения X и Y.

myPoint.Increment();

myPoint.Display();

Console.ReadLine();

Вывод выглядит вполне ожидаемо:

***** A First Look at Structures *****

X = 349, Y = 76

X = 350, Y = 77

Создание переменных типа структур

Для создания переменной типа структуры на выбор доступно несколько вариантов. В следующем коде просто создается переменная типа Point и затем каждому ее открытому полю данных присваиваются значения до того, как обращаться к членам переменной. Если не присвоить значения открытым полям данных (X и Y в данном случае) перед использованием структуры, то компилятор сообщит об ошибке:

// Ошибка! Полю Y не присвоено значение.

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

Point p1;

p1.X = 10;

p1.Display();

// Все в порядке! Перед использованием значения присвоены обоим полям.

Point p2;

p2.X = 10;

p2.Y = 10;

p2.Display();

В качестве альтернативы переменные типа структур можно создавать с применением ключевого слова new языка С#, что приводит к вызову стандартного конструктора структуры. По определению стандартный конструктор не принимает аргументов. Преимущество вызова стандартного конструктора структуры заключается в том, что каждое поле данных автоматически получает свое стандартное значение:

// Установить для всех полей стандартные значения,

// используя стандартный конструктор.

Point p1 = new Point();

// Выводит Х=0, Y=0

p1.Display();

Допускается также проектировать структуры со специальным конструктором, что позволяет указывать значения для полей данных при создании переменной, а не устанавливать их по отдельности. Конструкторы подробно рассматриваются в главе 5; однако в целях иллюстрации измените структуру Point следующим образом:

struct Point

{

  // Поля структуры.

  public int X;

  public int Y;

  // Специальный конструктор.

  public Point(int xPos, int yPos)

  {

   X = xPos;

    Y = yPos;

  }

...

}

Затем переменные типа Point можно создавать так:

// Вызвать специальный конструктор.

Point p2 = new Point(50, 60);

// Выводит X=50,Y=60.

p2.Display();

Использование структур, допускающих только чтение (нововведение в версии 7.2)

Структуры можно также помечать как допускающие только чтение, если необходимо, чтобы они были неизменяемыми. Неизменяемые объекты должны устанавливаться при конструировании и поскольку изменять их нельзя, они могут быть более производительными. В случае объявления структуры как допускающей только чтение все свойства тоже должны быть доступны только для чтения. Но может возникнуть вопрос, как тогда устанавливать свойство, если оно допускает только чтение? Ответ заключается в том, что значения свойств должны устанавливаться во время конструирования структуры. Модифицируйте класс, представляющий точку, как показано ниже:

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*