Задать вопрос
Ответы пользователя по тегу C#
  • Как создать миграцию данных с изменением даты?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Так если вы используете Entity Framework, там есть команда add-migration <name>, которая сгенерирует вам миграцию
    Ответ написан
    Комментировать
  • The same field name is serialized multiple times in the class or its parent class. Как исправить ошибку?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Простите, пожалуйста, но это очень глупый вопрос. Вы C# вообще учили?

    Вот ваш класс:
    public class Entity : MonoBehaviour
    {
        [SerializeField] private EntityScriptableObject _scriptableObject;
    
        public EntityScriptableObject ScriptableObject => _scriptableObject;
    }


    И вам же четко пишет, что у вас два поля с одинаковыми именами. Вот:
    [SerializeField] private EntityScriptableObject _scriptableObject;


    И вот:
    public EntityScriptableObject ScriptableObject => _scriptableObject;
    Ответ написан
  • Какой шаблон проекта выбрать при написании телеграмм бота Visual Studio 2022?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    А что такое API? Это просто сервер, куда вы будете делать HTTP запросы и получать информацию. Как разница, откуда вы будете делать HTTP запрос используя HttpClient. Ваш шаблон просто будет показывать, как вы это собираетесь выводить пользователю.

    Хотите простенькую программу? Делайте Console Application
    Хотите минимальный, но рабочий GUI? Делайте на Windows Forms/WPF
    Хотите, что бы вашей программой пользовались на телефоне? Можете делать на Xamarin.NET или MUI
    Хотите, что бы ваша программа была доступна без скачивания? Делайте на asp.net mvc
    Хотите, что бы ваша программа была в интернете и имела красивый и быстрый UI? Можете сделать на asp.net web api и прикрепить туда в качестве клиента React, Angular или Vue.js
    Не хотите делать переадресация трафика через API? Можете сделать только на React, Angular или Vue.js
    Хотите быстрый GUI в браузере, но не хотите отходить от технологий Microsoft? используйте asp.net Blazor
    Ответ написан
    Комментировать
  • Как скачивать торренты на c#?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Прям документации у них нет, есть просто примеры кода и опен-соурс код)

    Вот есть такие примеры
    Ответ написан
    1 комментарий
  • Как задать логическое && в лямба выражении?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    WhereIf? Может просто Where использовать? Туда как раз таки можно передать лямбду. и использовать логическое &&
    Ответ написан
    Комментировать
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    Student full-stack Developer
    Сделаю заключение долгих попыток десериализации сложных объектов, советов и рекомендаций.

    Первое что нужно понимать при сериализации и десериализации, что объект должен иметь возможность полного построения, т.е., иметь public конструктор и все свойства должны быть set (Именно public set, init так же не подходит)

    Проблема в том, что сериализаторы (По крайней мере те, который я использовал, это Newtonsoft.Json, System.Json и Utf8Json) не работают с System.Reflection, т.е., они могут восстановить только те поля/свойства, который доступны публично

    BinarySerialization так же не подходит

    Почему я не встречал такой ошибки раньше? Потому что на проектах типу web api + react основной единицей транспортировки данных были модели, так называемые DTO (Data Transfer Object), которые сами по себе имеют только публичные свойства и стандартный публичный конструктор без параметров и эти объекты отлично работают для отправки информации через http
    Ответ написан
  • Нормально ли писать на C# на Linux Manjaro?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Да, вы можете спокойно работать на C# из различных ОС таких как Windows, Linux и MacOS. Для этого вы можете разрабатывать проекты на платформе .NET Core. .NET Core является кроссплатформенной, по этому вы можете писать, запускать, тестировать и разворачивать ваши приложения на .NET Core на любой из платформ. Ограничения по ОС есть только для .NET Framework, т.к. она "наглухо" привязана к Windows
    Ответ написан
    7 комментариев
  • Можно ли как-то получить доступ к отображающим элементам ToolBar?

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

    Я вас понимаю в плане, почему вы это не сделал раньше, но правило стейтлесс относится больше к серверной части, на клиенте это вполне реализуемо
    Ответ написан
  • Почему required проперти не могут иметь более ограничиващий модификатор set\init, чем модиикатор класса, их содержащего?

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

    Что значит обязательные? У вас в примере есть это:
    public required DDD Dddd { get; internal init; }

    Что это значит? Допустим, у вас класс public class QQQ, а внутри него есть обязательное поле Dddd. Допустим, вы хотите создать объект этого типа из другого проекта. Как вы это сделаете? Ответ - НИКАК.

    Почему? Потому что систему будет требовать инициализировать поле Dddd, но вы его не видете, т.к. оно internal. На этом моменте у вас просто отвалится вся логика программы та и всей платформы .NET. По этому такие вещи просто запрещены

    Почему этот кусок будет работать?
    internal class QQQ
    {
    
        public required DDD Dddd { get; internal init; }
    }


    Потому что в любом месте видимости класса QQQ вы сможете инициализировать обязательное поле, которое имеет бо'льшую область видимости

    Вот тут отличная документация по модификаторам доступа, а вот тут видео об области видимости
    Ответ написан
    4 комментария
  • Автоматическая генерация классов на основе других классов?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Смотрите в сторону System.Reflection
    Ответ написан
    Комментировать
  • Как использовать аттрибут for для частичного предстваления asp.net core?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Да, только вам для этого нужно юзать эту конструкцию:

    @await Html.PartialAsync("_partialNameWithoutExtension", new ModelForPartialView())
    Ответ написан
  • Как запустить проект через dotnet watch run нужный мне профиль?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Ну что ж, начнём...

    1) Делаем сборку Release
    2) Переводим проект в среду Production
    3) Делаем publish
    4) Запускаем проект через консоль (Для линукса делаем сервис)
    Ответ написан
  • Почему степенной ряд оканчивается NaN?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Во-первых, код нужно предоставлять в специальном блоке
    Во-вторых, где вывод? На какой итерации у вас получается NaN? На 0-й? На 1-й?
    
    Во-третьих, когда диапазон допустимых числе double превышается, вы  получаете NaN (Скорее всего в этом и проблема)
    Ответ написан
    Комментировать
  • Как составить регулярное выражение?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    string input = "Hello, world 2!";
            string pattern = @"[^a-z0-9\-]";
    
            string replaced = Regex.Replace(input.ToLower(), @"\s+", "-");
            replaced = Regex.Replace(replaced, pattern, "");
    Ответ написан
    Комментировать
  • Как встроить звук в программу?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Как именно вы себе это представляете? Как часть библиотеки... System? System.IO? Microsoft.EntityFramework?

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

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Зачем нам весь ваш код?

    Вот небольшой метод для решения вашей задачи:

    public string ListConcat(ICollection<Player> players)
    {
         string list = string.Empty;
         foreach (Player player in players)
              list += player.Name;
    }


    А вообще посмотрите в сторону метода string.Concat
    Ответ написан
    5 комментариев
  • Почему моделька пустая у экшн контроллера?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    У вас ошибка при отправке
    Ответ написан
    Комментировать
  • Откуда полосы при рисовании WPF SKIA?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Проблема, вероятно, связана с точностью представления чисел с плавающей запятой. Хотя математически 3 + 2 должно быть равно 5, при использовании чисел с плавающей запятой могут возникать небольшие ошибки округления из-за представления десятичных чисел в двоичной системе.

    Это явление, когда небольшие ошибки в вычислениях с плавающей запятой накапливаются, известно как проблема потери точности. Она особенно заметна при выполнении множества операций с плавающей запятой или при итерациях.
    Ответ написан
    Комментировать
  • Как исправить ошибку ложного подключения на стороне TcpClient?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Попробуйте использовать более системный подход ограничения доступа через использования семафоров (SemaphoreSlim)

    Второй момент, это подключение. То, что соединения установлено говорит лишь о том, что соединение с сервером ЕСТЬ, но это не значит, что в клиента есть доступ к ресурсам сервера. Для этого вы можете создать свои правила. Вы можете сообщить клиенту, что он находится в очереди и перед ним находится n клиентов.
    Ответ написан
    Комментировать
  • C#, сессии, JWT token?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Изучите более подробно об JWT токенах и IndentityServer'е, тогда у вас не будет желания хранить их в базе) Но сможете использовать это всё для аутентификации и авторизации. Так же советую посмотреть об OAuth/OAuth2.0 и OpenId Connect

    Если что-то более простое, тогда делайте просто на куках как под mvc:
    Use cookie authentication without ASP.NET Core Identity
    ASP.NET Core - Write a Simple Cookie Authentication
    Ответ написан
    Комментировать