Ответы пользователя по тегу C#
  • Как сгенерировать 404 из view в asp.net core?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    В asp.net core ЧТО? Blazor Server? Blazor Web Assembly? Razor Pages? Web Api?

    Какие исключения? Вы понимаете, что такое исключение на уровне приложения? Это когда программа "отвалилась", произошла ошибка, сервер накрылся, базу данных физически украли, свет отключили или что-то подобное

    Ваш HttpException это по факту ошибка работы с протоколом Http, ошибка передачи информации или подобное. И то, даже школьники уже понимают, что ошибки нужно обрабатывать, а не специально генерировать. Если у вас программа будет на сервере, а вас просто сервер накроется из-за такого кода и вам нужно будет лезть и всё заново запускать

    Ошибка 404 это просто статус ответ от сервера, который уведомляет вас о том, что запрашиваемый ресурс не найден. Если у вас всё же стоит Web Api, тогда просто в контроллере делаете return NotFound()

    Если у вас Razor Pages или MVC, просто сделайте return RedirectToAction("NotFound", "Home") предварительно создав страницу NotFound в контроллере Home
    Ответ написан
    4 комментария
  • Как преобразовать из char массива в string массив в си шарп?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Что вот это вот такое?
    string[] strArr = new string[charArr.Length];
    Если вы уже пытаетесь с массива что-то собрать, то сначала изучите, как работают массивы. Операция [ ] это доступ по индексу. Вы пытаетесь достучаться к новой строке по индексу, или как?
    Вторая проблема, что нет явного преобразования char -> string, т.е. вот такой код работать не будет:
    string a = charArr[0];
    Рабочие варианты:
    string a = charArr[0].ToString();
    string a = $"{charArr[0]}";
    string a = string.Join(charArr[0]);

    Короче говоря вам нужно сначала каждый элемент char[] пересобрать в string, а потом запихнуть это всё в string[]. Тут есть два варианта, что бы долго не играться - через простые циклы или через linq. 1й вариат:
    string word = Console.ReadLine();
    char[] charArr = word.ToCharArray();
    
    string[] strArr = new string[charArr.Length];
    for (int i = 0; i < charArr.Length; i++)
    {
        strArr[i] = charArr[i].ToString(); // Или другой из методов
    }


    2й вариант:
    string word = Console.ReadLine();
    char[] charArr = word.ToCharArray();
    string[] strArr = charArr.Select(c => c.ToString()).ToArray();


    А вообще не уверен, что вы делаете именно то, что вам нужно. В плане, на начальных этапах такое бывает, что не понимаешь как задачу решить и начинаешь лепить что угодно)
    Ответ написан
    Комментировать
  • Как дождаться выполнения асинхронного метода?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Task это асинхронная задача, ожидать выполнение которой можно с использованием async/await
    Дока
    Ответ написан
    Комментировать
  • Как устранить следующую ошибку в Visual Studio. Язык C#?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Установите пакет System.Windows.Media через менеджер пакетов NuGet
    Ответ написан
  • Почему связи в таблице работают неправильно?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Господи, изучите сначала теорию о работе с базами данных, перед тем как задавать такие вопросы, потому что это просто смешно уже...

    Во первых, если вам нужно установить связь между этим
    public List<CodeSnippet> LikedCodeSnippets { get; set; } = new List<CodeSnippet>();


    И этим
    public List<User> UsersWhoLiked { get; set; } = new List<User>();


    Вам нужна дополнительная таблица. Почему? Потому что тут связь много-ко-многим. Вот она:
    public sealed class UserCodes
    {
        public int UserId { get; set; }
        public User User { get; set; }
    
        public int CodeId { get; set; }
        public CodeSnippet Code { get; set; }
    }


    Через эту таблицу далее конфигурируете связь много-ко-многим

    Что значит эта запись?
    public User User { get; set; } = null!;

    В чём смысл говорить, что она null и ставить ! как обозначение того, что она not null?
    Ответ написан
    2 комментария
  • Какие проекты для обучение взять для WPF?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    1.
    Реализация Coingeko API с монетами и их ценой. Вам нужно реализовать аналог торговой биржы криптовалютой с аккаунтами и кошельком, а так же возможность локально (В рамках одного приложения) продавать и покупать валюту, пополять счёт или выводить деньги через сервисы посредники с процентом

    2.
    Как уже сказал Сергей Соловьев , вариант со складом достаточно хороший но так же и сложный. Вариант: готовый продукт для управления складом. Возможность создавать учётные записи пользователей, которые привязаны к неким местам работы (офис, склад, магазин и т.д.). Нужно вести учёт поставок товаров и их отход. Данные нужно реализовать при помощи таблиц с возможностью добавление новых колонок (Dynamic data). К каждой таблице привязать возможность взаимодействовать с глобальным учётом товаров (поставок). Возможность генерации отчётов ( .pdf, .xlsx, .doc, .docx, .html) и парсинга отчётов (поставка товара, месячный либо годовой отчёт)

    3.
    Диспетчер задач:
    - Текущие процессы
    - Фоновые процессы
    - Сетевая нагрузка
    - Нагрузка процессора
    - Нагрузка ОЗУ

    - Возможность убить процесс
    - Возможность создать процесс (Открыть указанную программу)
    - Наблюдение за процессом (Показатель нагрузки относительно времени)
    Ответ написан
    Комментировать
  • Как подружить MVC с реляционной базой данных?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Как подружить MVC с реляционной базой данных?

    Та нормально они дружат через Entity Framework, Dapper либо другие ORM.

    Форма не может передать методу POST сложные типы

    А при чём тут ваш вопрос "Как подружить MVC с реляционной базой данных?", если вы не можете передать с клиента на сервер?

    ModelState требует, чтоб были заполнены и CountryId, и Country одновременно.

    Используйте модели. Просто создайте другой класс (Модель), который будете использовать для get/post запросов (По отдельности, одна модель - один запрос) и вынесите туда всё, что вам нужно. Обычно вам хватит только Id того объект с каким будете работать + поля, которые нужны для создания/обновления/добавления и т.д. Для удаления вам хватит просто Id, для обновления нужны только поля, которые нужно обновить и Id того объекта, который нужно обновлять. И будет вам работа с примитивами )

    Для валидации вообще рекомендую накатить какую-то библиотеку по типу Fluent Validation Api либо Regex (Приоритетно)
    Ответ написан
    Комментировать
  • Почему эта переменная возвращает System.string[] вместо пути?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Ну во-первых, потому что так в документации написано.

    Во-вторых, само название метода GetFiles ничего вам не говорит? Данный метод возвращает список файлов в указанной директории.

    В целевой папке всего один файл

    И что? Значит метод вернёт вам массив с одним элементом. Если вы хотите получить конкретный файл, значит вам нужно что-то на подобии File.Open и т.д.

    значение переменной jar = System.string[]

    Тут по очереди. У вас System.string[] вылез, скорее всего из какого-то Console.WriteLine. Почему? Потому что тип вашего jar и массив типа string. Когда вы пытаете вывести какой-то тип в Console.WriteLine, который не предусмотрен в перегрузках, он будет вам выводить GetType().FullName, т.е. название типа, которое вам и выводится.

    Вообще, очень дурна привычка использовать var, просто не делайте так, а то вы плутаете сами себя и вы не понимаете, что вам должен возвращать метод
    Ответ написан
    8 комментариев
  • NullReferenceException: Object reference not set to an instance of an object?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    В вашем случае, вероятно, компонент TextMeshProUGUI не был найден на объекте, к которому прикреплен скрипт. Исходя из скриншота, вам нужно на объект прикрепить именно TextMeshProUGUI

    662f5c18aea73994361626.png
    Ответ написан
    Комментировать
  • Как из файла txt записать в Dictionary?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Не используйте File.ReadAllLines и подобные, это ошибка и вы не умеете правильно с ним работать, что бы его так использовать. Исправленный код:

    string fileTagsPath = $@"{AppDomain.CurrentDomain.BaseDirectory}tags\{имя файла}.txt";
    using (StreamReader reader = new StreamReader(fileTagsPath))
    {
        while (!reader.EndOfStream)
        {
            string line = reader.ReadLine();
            string[] lineParts = line.Split(", ");
            replacements.Add(lineParts[0], lineParts[1]);
        }
    }
    Ответ написан
    5 комментариев
  • Как понять что я выучил основы C#?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Вообще вы можете язык очень много лет учить. Что вы знаете о языке C#? Можете написать несколько классов, прокинуть соединение к БД, написать несколько linq запросов? А что на счёт делегатов, событий? Рефлексия учится долго. Потоки, и тут имеется ввиду не просто банальный async/await, а прям взаимодействие с памятью и системными потоками. Знаете? Нет? Учить будете? Само собой, что будете, а стоит ли оно того?

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

    А знаете где она используется? Для примера это Dependency Injection контейнер в asp.net.

    А где используются событие? Для примера это handler'ы в таких фреймворках как Windows Forms и WPF.

    Вы не можете сказать, выучили вы это или нет, пока вы не сможете нормально управляться технологией или фреймворком, где эта тема используется повсеместно
    Ответ написан
    Комментировать
  • Как решить проблему подключения БД к WPF проекту?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Да, может, т.к. MacOS не поддерживает работу с MSSQL Server в принципе. Для того, что бы получить доступ через виртуалку, нужно изрядно поизвращаться, так что используйте PostgreSql, либо Sqlite, который уже идёт "из коробки" на маках.

    Тут вопрос второй, как вы хотите запустить БД на виртуалке и достучаться к ней из вашего MacOS? Оно не так просто всё делается, что вы просто запустили и оно всё обнаружило. Виртуальная машина это вообще, считайте, отдельный ПК где-то там далеко от вас. Что бы с ним работать, нужно вообще по сети раскидывать соединение (Я так когда-то делал, не знаю, может кто-то скажет, что есть другие варианты) и стучаться по портам как на удалённый БД сервер. Понятно, что оно у вас не видит
    Ответ написан
  • Как подключить proto файлы к проекту?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Клик сюда
    660ebe1a9e832661047201.jpeg

    Далее сюда
    660ebe371e0df243799837.png

    Подключаете .proto файл. После этого делает Rebuild вашего solution'а. Потом даблклик по проекту, в этом .csproj файле ищите секцию ItemGroup в которой будут ваши Protobuf. К ним додаёте аттрибут ProtoRoot, который (Для удобной работы) должен быть таким же как и пусть в аттрибуте Include без указания названия файла .proto

    UPD:
    Так же стоит отметить, чтобы импортировать в .proto ваш другой .proto, они должны быть хотя бы на одном уровне. Другими словами, вы можете импортировать только файлы, который находятся по архитектуре на том же уровне или ниже, потому что в import запрещено использования символа точки и запятой. Это значит, что вы не сможете выйти на уровень выше
    Ответ написан
    7 комментариев
  • Создается dll вместо exe?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    dll это библиотека. Значит вам нужен проект не библиотека, а, допустим, консольное приложение
    Ответ написан
    Комментировать
  • Как правильно настроить валидацию пароля в Blazor FluentValidation?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Вы используете
    fv.RegisterValidatorsFromAssemblyContaining<LoginModelValidation>())


    Это автоматическая регистрация сервисов валидаци, но она не работает на .net 8 (И, вроде бы на .net 7, но жто не точно). По этому, если вы используете указанную версию .net, вас все валидаторы нужно регистрировать вручную
    Ответ написан
  • Как перенести данные из html в VS?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Ну блин... Ну и вопрос конечно вы задали...

    Через JS можете отправить по HTTP (По желанию). Если таблица Excel, тогда подключайте соответствующие пакеты (Не в html)
    Ответ написан
    Комментировать
  • Почему служба Windows с Timer отрабатывает только один раз?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Простите, у вас проблемы с установкой Visual Studio? Или у вас компилятор сломался, что вы не можете запустить код?
    Ответ написан
  • Почему это не работает?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Тут есть два варианта, либо оно всё же присваивается, просто вы его не можете использовать так, как нужно, либо у вас условие if равно false. Больше вариантов не может быть

    UPD:
    Судя по логам, у вас выводится число 10, значит внутрь блока if программа заходит, значит всё должно работать. Вы лучше не 10 выводите в Debug.Log, а значение переменной textret
    Ответ написан
    Комментировать
  • Что делать если происходит такая ошибка?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Пожалуйста, зачем вы полезли игры делать, если вы C# не знаете? Что такое NULL?

    У вас ошибка NullReferenceException, значит что объект NULL. Почему? Вы получаете объект zacaz1 используя GetComponent<trigger_test>. Что делает GetComponent<trigger_test>? Возвращает присоединённый компонент указанного объекта (текущего). Если при обращении к zacaz1 вы получаете NULL, о чём это говорит? О том, что у этого компонента нет объекта trigger_test
    Ответ написан
    Комментировать
  • Как передать динамический текст в switch-case?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Switch работает только со статическими данными, а не выражениями
    Ответ написан
    4 комментария