Mir-knigi.online
Книги онлайн читать бесплатно!
  • Главная
  • Жанры
  • ТОП книг
  • ТОП авторов
  • Контакты

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

Часть 126 из 642 Информация о книге

class Point

{

   public int X { get; set; }

   public int Y { get; set; }

   public PointColorEnum Color{ get; set; }

   public Point(int xVal, int yVal)

   {

     X = xVal;

     Y = yVal;

     Color = PointColorEnum.Gold;

   }

   public Point(PointColorEnum ptColor)

   {

     Color = ptColor;

   }

   public Point() : this(PointColorEnum.BloodRed){ }

   public void DisplayStats()

   {

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

     Console.WriteLine("Point is {0}", Color);

   }

}

Посредством нового конструктора теперь можно создавать точку золотистого цвета (в позиции (90, 20)):

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

// с помощью синтаксиса инициализации.

Point goldPoint = new Point(PointColorEnum.Gold){ X = 90, Y = 20 };

goldPoint.DisplayStats();

Инициализация данных с помощью синтаксиса инициализации

Как кратко упоминалось ранее в главе (и будет подробно обсуждаться в главе 6), отношение "имеет" позволяет формировать новые классы, определяя переменные-члены существующих классов. Например, пусть определен класс

Rectangle
, в котором для представления координат верхнего левого и нижнего правого углов используется тип
Point
. Так как автоматические свойства устанавливают все переменные с типами классов в
null
, новый класс будет реализован с применением "традиционного" синтаксиса свойств:

using System;

namespace ObjectInitializers

{

  class Rectangle

  {

    private Point topLeft = new Point();

    private Point bottomRight = new Point();

    public Point TopLeft

    {

      get { return topLeft; }

      set { topLeft = value; }

    }

    public Point BottomRight

    {

      get { return bottomRight; }

      set { bottomRight = value; }

    }

    public void DisplayStats()

    {

      Console.WriteLine("[TopLeft: {0}, {1}, {2} BottomRight: {3},

                                   {4}, {5}]",

          topLeft.X, topLeft.Y, topLeft.Color,

          bottomRight.X, bottomRight.Y, bottomRight.Color);

    }

  }

}

С помощью синтаксиса инициализации объектов можно было бы создать новую переменную

Rectangle
и установить внутренние объекты
Point
следующим образом:

// Создать и инициализировать объект Rectangle.

Rectangle myRect = new Rectangle

{

   TopLeft = new Point { X = 10, Y = 10 },

   BottomRight = new Point { X = 200, Y = 200}

};

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

Rectangle
:

// Традиционный подход.

Rectangle r = new Rectangle();

Point p1 = new Point();

p1.X = 10;

p1.Y = 10;

r.TopLeft = p1;

Point p2 = new Point();

p2.X = 200;

p2.Y = 200;

r.BottomRight = p2;

Поначалу синтаксис инициализации объектов может показаться несколько непривычным, но как только вы освоитесь с кодом, то будете приятно поражены тем, насколько быстро и с минимальными усилиями можно устанавливать состояние нового объекта.

Работа с константными полями данных и полями данных, допускающими только чтение

Иногда требуется свойство, которое вы вообще не хотите изменять либо с момента компиляции, либо с момента его установки во время конструирования, также известное как неизменяемое. Один пример уже был исследован ранее — средства доступа только для инициализации. А теперь мы займемся константными полями и полями, допускающими только чтение.

Понятие константных полей данных

Язык C# предлагает ключевое слово

const
, предназначенное для определения константных данных, которые после начальной установки больше никогда не могут быть изменены. Как нетрудно догадаться, оно полезно при определении набора известных значений для использования в приложениях, логически связанных с заданным классом или структурой.


Перейти к странице:
Предыдущая страница
Следующая страница
Жанры
  • Военное дело
  • Деловая литература
  • Детективы и триллеры
  • Детские
  • Детские книги
  • Документальная литература
  • Дом и дача
  • Дом и Семья
  • Жанр не определен
  • Зарубежная литература
  • Знания и навыки
  • История
  • Компьютеры и Интернет
  • Легкое чтение
  • Любовные романы
  • Научно-образовательная
  • Образование
  • Поэзия и драматургия
  • Приключения
  • Проза
  • Прочее
  • Психология и мотивация
  • Публицистика и периодические издания
  • Религия и духовность
  • Родителям
  • Серьезное чтение
  • Спорт, здоровье и красота
  • Справочная литература
  • Старинная литература
  • Техника
  • Фантастика и фентези
  • Фольклор
  • Хобби и досуг
  • Юмор
Mir-knigi.online

Бесплатная онлайн библиотека для чтения книг без регистрации с телефона или компьютера. У нас собраны последние новинки, мировые бестселлеры книжного мира.

Контакты
  • [email protected]
Информация
  • Карта сайта
© mir-knigi.online, 2026. | Вход