<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, Вы будете получать уведомления о новых статьях.

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

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

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

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

Валидация данных в C# с помощью библиотеки FluentValidation

Валидация данных в C# с помощью библиотеки FluentValidation

Доброго времени суток! В данной статье мы рассмотрим с Вами как можно провести проверку введенных пользователем данных (валидацию) в C# с помощью библиотеки FluentValidation.

Итак, для начало необходимо создать консольный проект в среде Visual Studio, а после установить пакет FluentValidation через менеджер пакетов Nuget.

Теперь в файл программы Program.cs добавим следующий исходный код:


using System;
using System.Text.RegularExpressions;
using FluentValidation;

namespace C_Sharp_Validation_ConsoleApp
{
    // класс заказа, данные которого мы будем проверять
    // предполагается, что он заполнен из данных, введенных пользователем в некоторой форме
    // форма может быть представлена как веб- так и графическим интерфейсом
    class Order
    {
        // в данные свойства записываются значения пришедшие от пользователя
        public readonly string Id;
        public readonly string State;

        // конструктор класса, тело которого определено через лямбда-выражение
        public Order(string id, string state) => 
            (this.Id, this.State) = (id, state);


        public override string ToString() =>
            $"Order(Id={Id};State={State})";
    }


    // любой пользовательский валидатор должен быть унаследован 
    // от абстрактного класса  AbstractValidator<T>, где T - это тип класса, свойства которого мы будет
    // проверять на соответствие правилам (Rules)
    class OrderValidator : AbstractValidator<Order>
    {
        // правила валидации определяются в конструкторе класса
        public OrderValidator()
        {
            // правило для (RuleFor) свойства Order.Id (идентификатор заказа) - не должно быть пустым значением (NotEmpty)
            // минимальная длина значения должна составлять 10 символов
            // значение должно начинаться с подстроки id********
            RuleFor(order => order.Id).NotEmpty().MinimumLength(10).Matches(new Regex("^id.*"));

            // правило для страны заказа - просто не должно быть null значением
            RuleFor(order => order.State).NotNull();
        }
    }

    internal class Program
    {
        static void Main(string[] args)
        {
            // создаем класс валидатора заказа
            var validator = new OrderValidator();

            // создаем тестовые заказы, первый верный, второй с ошибкой
            var user1 = new Order("id123456789", "USA");
            var user2 = new Order("321221212", "GB");


            // проводим тестирование
            ShowUser(user1, validator);
            ShowUser(user2, validator);
        }


        static void ShowUser(Order order,  OrderValidator validator)
        {
            // здесь бы берем объект заказа и проводим его валидацию
            var res = validator.Validate(order);

            // если после проверки нет ошибок
            if(res.IsValid)
            {
                Console.WriteLine($"Объект ({order}) не содержит ошибок");
            }
            else
            {
                // в противном случае, если есть ошибки  
                // просто выводим их в консоль
                foreach (var item in res.Errors)
                {
                    Console.WriteLine(item);
                }
            }
        }
    }
}



Таким образом, вот так просто с помощью C# библиотеки FluentValidation можно проверить данные на корректность, причем как видно из примера выше правила валидации добавляются одно за другим в соответствии с шаблоном Fluent Interface (Текучий интерфейс).

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

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

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

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

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

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

  1. Кнопка:

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

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

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

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

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

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