Глава начиналась с исследования массивов. Затем обсуждались ключевые слова С#, которые позволяют строить специальные методы. Вспомните, что по умолчанию параметры передаются по значению; тем не менее, параметры можно передавать и по ссылке, пометив их модификаторами ref
или out
. Кроме того, вы узнали о роли необязательных и именованных параметров, а также о том, как определять и вызывать методы, принимающие массивы параметров.
После рассмотрения темы перегрузки методов в главе приводились подробные сведения, касающиеся способов определения перечислений и структур в C# и их представления в библиотеках базовых классов .NET Core. Попутно рассматривались основные характеристики типов значений и ссылочных типов, включая их поведение при передаче в качестве параметров методам, а также способы взаимодействия с типами данных, допускающими null
, и переменными, которые могут иметь значение null
(например, переменными ссылочных типов и переменными типов значений, допускающих null
), с использованием операций ?
, ??
и ??=
.
Финальный раздел был посвящен давно ожидаемому средству в языке C# — кортежам. После выяснения, что они собой представляют и как работают, кортежи применялись для возвращения множества значений из методов и для деконструирования специальных типов. В главе 5 вы начнете погружаться в детали объектно-ориентированного программирования.
Часть III
Объектно-ориентированное программирование на C#
Глава 5
Инкапсуляция
В главах 3 и 4 было исследовано несколько основных синтаксических конструкций, присущих любому приложению .NET Core, которое вам придется разрабатывать. Начиная с данной главы, мы приступаем к изучению объектно-ориентированных возможностей языка С#. Первым, что вам предстоит узнать, будет процесс построения четко определенных типов классов, которые поддерживают любое количество static
, синтаксисе инициализации объектов, полях только для чтения, константных данных и частичных классах.
Знакомство с типом класса C#
С точки зрения платформы .NET Core наиболее фундаментальной программной конструкцией является
Для начала создайте новый проект консольного приложения C# по имени SimpleClassExample
. Затем добавьте в проект новый файл класса (Car.cs
). Поместите в файл Car.cs
оператор using
и определите пространство имен, как показано ниже:
using System;
namespace SimpleClassExample
{
}
На заметку! В приводимых далее примерах определять пространство имен строго обязательно. Однако рекомендуется выработать привычку использовать пространства имен во всем коде, который вы будете писать. Пространства имен подробно обсуждались в главе 1.
Класс определяется в C# с применением ключевого слова class
. Вот как выглядит простейшее объявление класса (позаботьтесь о том, чтобы объявление класса находилось внутри пространства имен SimpleClassExample
):
class Car
{
}
После определения типа класса необходимо определить набор переменных-членов, которые будут использоваться для представления его состояния. Например, вы можете принять решение, что объекты Car
(автомобили) должны иметь поле данных типа int
, представляющее текущую скорость, и поле данных типа string
для представления дружественного названия автомобиля. С учетом таких начальных проектных положений класс Car
будет выглядеть следующим образом:
class Car
{
// 'Состояние' объекта Car.
public string petName;
public int currSpeed;
}
Обратите внимание, что переменные-члены объявлены с применением модификатора доступа public
. Открытые (public
) члены класса доступны напрямую после того, как создан объект этого типа. Вспомните, что термин new
.
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT