<MyRusakov.ru />

Программирование на C++ в Unreal Engine 5

Программирование на C++ в Unreal Engine 5

Данный курс научит Вас созданию игр на C++ в Unreal Engine 5. Курс состоит из 12 разделов, в которых Вас ждёт теория и практика. Причём, в качестве практики будет создан весьма крупный проект объёмом свыше 5000 строк качественного кода, который уже на практике познакомит Вас с принципами создания игр на C++ в Unreal Engine 5.

Параллельно с курсом Вы также будете получать домашние задания, результатом которых станет, в том числе, полноценная серьёзная работа для портфолио.

Помимо самого курса Вас ждёт ещё и очень ценный Бонус: «Тестирование Unreal-проектов на Python», в рамках которого Вы научитесь писать очень полезные тесты для тестирования самых разных аспектов разработки игр.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Перечисления в С#

Перечисления в С#

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

Перечисления определяются с помощью ключевого слова enum.


enum TaskPriority
{
    Low,
    Normal,
    High
}

По умолчанию значения членов перечисления имеют тип int. Они начинаются с нуля и увеличиваются на единицу. Но для перечисления можно определить и другие типы, включая byte, sbyte, short, ushort, uint, long, и ulong. Также перечисления создаются в стеке, а не в куче.

Простой пример перечисления C

Ниже приведен простой пример с перечислением.


Day day = Day.Monday;

if (day == Day.Monday)
{
    Console.WriteLine("Это понедельник");
}

Console.WriteLine(day);

// выводим значения членов перечисления
foreach (int i in Enum.GetValues(typeof(Day)))
{
    Console.WriteLine(i);
}

// Создаем перечисление для дней недели.
enum Day
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

Тестируем программу в консоли:


$ dotnet run
It is Monday
Monday
0
1
2
3
4
5
6

Также мы можем указать собственные значения для членов перечисления.


foreach (int i in Enum.GetValues(typeof(Day)))
{
    Console.WriteLine(i);
}

enum Day
{
    Monday = 10,
    Tuesday = 11,
    Wednesday = 12,
    Thursday = 13,
    Friday = 14,
    Saturday = 15,
    Sunday = 16
}

В примере мы предоставляем значения от 10 до 16 членам Dayперечисления.


$ dotnet run
10
11
12
13
14
15

Перечисления с типом данных отличных от int

В следующем примере мы изменим тип данных для членов перечисления.


// теперь тип значений не int, а byte
// время года
enum Season : byte
{
    Spring = 1,
    Summer = 2,
    Autumn = 3,
    Winter = 4
}


Season s1 = Season.Spring;
Season s2 = Season.Autumn;

Console.WriteLine(s1);
Console.WriteLine(s2);

Console.WriteLine("#############################################");


Console.WriteLine(s1.GetType()); // тип переменной перечисления
Console.WriteLine(Enum.GetUnderlyingType(s1.GetType())); // тип, лежащий в основе значений перечисления

Выполним в консоли:


$ dotnet run
Spring
Autumn
#############################################
Season
System.Byte

Преобразования перечислений в C

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


enum Priority
{
    Low,
    Normal,
    High
}

var p1 = Priority.Low;

// конвертируем значение перечисления в его целочисленное представление
Console.WriteLine($"Численной значение {p1} равно {(int) p1}");

// конвертируем число в элемент перечисления, соответствующий этому числу
var p2 = (Priority) 1;
Console.WriteLine(p2);

// конвертируем число в элемент перечисления, соответствующий этому числу
var p3 = (Priority) 2;
Console.WriteLine(p3);




$ dotnet run
Численной значение Low равно 0
Normal
High

Флаги перечислений

С помощью атрибута [Flags] перечисление можно превратить в битовое поле. Затем это перечисление можно использовать в качестве набора флагов. (Значения этих членов перечисления должны быть степенью двойки.)

Далее мы можем использовать побитовые логические операторы | или & для комбинирования вариантов.


var readWrite = Permissions.Read | Permissions.Write;
Console.WriteLine(readWrite);

[Flags]
enum Permissions
{
    Execute = 0b_0000_0001,
    Write = 0b_0000_0010,
    Read = 0b_0000_0100
}

В примере мы определяем разрешение на чтение и запись с помощью оператора |.


$ dotnet run 
Write, Read

Таким образом в данной статье мы рассмотрели основы работы с перечислениями в C#.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.