Ответы пользователя по тегу C#
  • Возможно ли уменьшить строку с цифрами в 10 раз и потом вернуть её обратно?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Технически, это сделать можно, но для этого вам нужно более детально изучить методы кодирования информации, вот одни из самых простых, которые вы можете реализовать:

    • Алгоритм Шеннона — Фано
    • Алгоритм Хаффмана
    • Метод LZ77
    • Метод LZSS
    • Метод LZ78
    • Метод LZW
    • Метод Хэмминга (Сложный)
    Ответ написан
    Комментировать
  • Как параметризировать репозиторий базы данных?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Лично мой совет:

    Во первых, попробуйте сначала asp.net mvc, так как asp.net web api предлагается для тех программистов, которые имеют хотя бы 2 года коммерческого опыта.
    Во вторых, для новичков рекомендуется использовать Entity Framework (Для MS SQL Server и SSMS)
    Во трерьих, наследование от интерфейса (Правильно называется реализацией интерфейса, наследование только от классов) не создаст вам проблем, особенно если у вас в таком случае не возникает проблема компилляции (Какая именно?)
    Во четвертых, реализация интерфейсов вам понадобится для так званого "Конвейера", который вы должны изучить на asp.net mvc
    Ответ написан
    Комментировать
  • Почему в ListView не показываются элементы, а также является null?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Данный класс, в котором вы пишете (Form1) является partial (Прочитайте об этом). Вторая часть этого класса инициализирует (Т.е. создаёт) всё компоненты (Кнопки, текстБоксы и т.д.) на форме. По этому, до того, как на форме появятся хоть какие-то элементы, их нельзя, т.к. технически, они не будут ещё существовать вообще (т.е. null)
    Ответ написан
    Комментировать
  • Как привязать поведение ссылки/кнопки к конкретному экземпляру класса?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Немного не понял задачу, так что дам ответ, на то, что я понял)

    Во первых, попробуйте использовать JS, если нужно в зависимости от "Чего-то" изменить "Что-то", но это, как вы поняли, работает, если вам нужны изменения на вьюхе (Тут даже Vue.js подойдёт лучше).

    Во вторых, попробуйте использовать другие классы для таких задач. Тут вам уже нужен будет (Возможно) Ajax для корректной работы с вьюхами. Через Ajax пробуйте переадресовать клик "Куда-то" и там уже обработать
    Ответ написан
  • Почему Entity Framework Core не создаёт столбцы в таблице?

    NikFaraday
    @NikFaraday Автор вопроса
    Student full-stack Developer
    Оказывается проблема была в отсутствии nullable связей между таблицами
    Ответ написан
    Комментировать
  • Как переопределить встроенную валидацию в конвейер обработки запроса .net core?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Что-то рано вы перешли к web api )
    Лично я использую FluentValidation API (Не путать с Fluent Validator), который вы можете установить через NuGet и посмотреть на офф.сайте, как правильно настроить, буквально до часа работы займёт.
    Та же можно использовать стандартное свойство Model внутри контроллера и из него свойство IsValid для валидации модели либо отдельно проверять каждое свойство/поле на какое-то конкретное значение (== null, is null, String.IsEmpty(...)) и возвращать соответствующий сетевой код, для примера, в вашем случае, можно сделать return BadRequest( new { response = "Some fields is empty });
    BadRequest относится к типам, которые доступны по стандарту и в asp.net имеют соответствующие значения сетевых кодов. Вы используете в примере Ok, т.е. сетевой код 200.
    Ещё попробуйте поставить на метод HttpPost - IgnoreAntiforgetToken или как-то так он называется, возможно ошибка в нём (Если об этом не читали и ничего с этим не делали, тогда прям наверняка)
    Более подробно можете найти в интернете, направление я вам дал)
    Ответ написан
  • Как исправить исключение System.AggregateException: "Some services are not able to be constructed"?

    NikFaraday
    @NikFaraday Автор вопроса
    Student full-stack Developer
    Решение: проблема может возникать, если в другом классе, где вы пытаетесь получить объект через DI используется класс вместо интерфейса.
    Так же ошибка может возникать, если просто не зарегистрирован сервисный класс в конвейере
    Ответ написан
    Комментировать
  • Как и что читать дальше по C#?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Если вы даже данный момент пойдёте на работу, уже сейчас вы будете получать задачи по новому .NET 6, так что ориентируйтесь именно на него, максимум .NET 5. Так же для этого вам потребуется знать минимальный JS, html+css, ajax, JQuery и конечно же без Entity Framework Core не обойдётся
    Ответ написан
    Комментировать
  • Рациональность кода C#?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Вам нужно изучить или, хотя бы, прочитать об этом:

    • Классы C#
    • Многопроектные решения
    • Паттерны проектирования
    • Книги по проектированию


    Для полного изучения может уйти очень много времени, но результат стоит того. Прочитайте немного из каждого пункта и вы узнаете много чего нового, что даже на данному уровне поможет вам уже сейчас
    Ответ написан
    Комментировать
  • Как передать данные по умолчанию из одного класса в другой?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    При попытке вывода на экран у вас выводится не дата и сам класс, так как у вас не предусмотрено метода для вывода на экран. Для облегчения задачи, предлагаю вам сделать метод типа PrintInfo() который будет сам печатать на экран все необходимые данные данного класса при вызове
    Ответ написан
    Комментировать
  • При компиляции матрицы по левой диагонали выдаёт ошибку, как это исправить?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Какая ошибка выдаёт то?
    Почему вы используете строку для инициализации?
    Почему вы её сплитуете по пустому значению?
    Ответ написан
    Комментировать
  • Как вызвать событие в WPF?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    События - это специальный тип делегата (Ссылка на метод или функцию) которая исполняется при каком-то действии
    Для создания события для baseBlock (Если это пользовательский класс), нужно в этом классе описать делегат, который будет принимать необходимые параметры, типа sender и RountedEventArgs.
    Далее в классе нужно описать экземпляр на этот делегат, типа так:

    public delegate returnValue DelegateName(Params param);
    event DelegateName eventHandlerName;


    Далее, сама суть в том, что при выполнении некоторых действий, по типу, когда вызывается какой-то метод, допусти, для вывода состояния объекта либо класса, тогда в этом методе должно вызываться это событие, так как оно будет указывать на то, что был вызван именно этот метод.
    Суть событий как раз таки в том, что бы отслеживать вызов методов и всё. Этот делегат должен инициализироваться снаружи класса, т.е., то, что будет делаться при вызове события, будет определяться непосредственно пользователем, так как и с обычными событиями для Click, когда действия, которые будут выполняться, определяет именно программист.

    Для более детального изучения (Если метанит, значит метанит )) ) ссылку прилагаю ниже
    https://metanit.com/sharp/tutorial/3.14.php
    Ответ написан
  • Как узнать есть ли пробел после разделителя?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Для разбиения по точке используйте Split('.')
    Для проверки наличия пробела после запятой используйте поиск запятой через цикл (Лучше через for) и проверяйся элемент с индексом i+1, является ли он пробелом.
    Что-то типа if (list[i + 1] == ' ') ...
    Ответ написан
    Комментировать
  • Как можно разрешить ошибку NU1100?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    https://docs.microsoft.com/ru-RU/nuget/reference/e...

    Ошибка не в конфигурации проекта (Тот код, что вы скинули) а скорее в самом коде либо в наличии несовместимых пакетов. Детальнее об ошибке на ссылке выше
    Ответ написан
    Комментировать
  • C# эмуляция мыши в неактивном окне?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Если я правильно понимаю, вам нужна система Drag and drop и делать это вообще лучше на JS, если это относится к браузеру
    Ответ написан
    Комментировать
  • Как подключить Entity Framework Core к Windows Forms C# .Net Core?

    NikFaraday
    @NikFaraday Автор вопроса
    Student full-stack Developer
    Ответом оказалось достаточно интересная вещь. Попробовав запустить проект и в конструкторе формы вызвать полуголый конструктор класса конфигурации ApplicationDbContext (Имя новое ибо пересоздавал класс), компилятор требовал реализовать связи между сущностями, что потом же и оказалось верным решением.

    Имею ввиду, что где-то были криво прописаны связи между таблицами, но пакетный менеджер мне об этом не сообщил... Точнее, он вообще мне ничего конкретного не сообщил

    У меня всё )
    Ответ написан
    Комментировать
  • Что отвечает за рендринг элементов WPF и связанно ли это с туннелированием?

    NikFaraday
    @NikFaraday Автор вопроса
    Student full-stack Developer
    Накопал некую информацию по поводу рендринга графики:
    • Windows Forms - для визуализации использует User32.dll и GDI/GDI+
      User32.dll - хранит все готовые элементы
      GDI/GDI+ - система для отрисовки элементов попиксельно
    • WinForm для прорисовки использует ПРОЦЕССОР
    • WPF - для визуализации использует DirectX
    • WPF для прорисовки использует ВИДЕОКАРТУ


    На основе вышесказанного, туннелирование, по идеи, возможно и в WinForm и в WPF, так всё же, возможно, это зависит не от этого? Если да, то от чего тогда? :\

    UPD: Нашёл статью на счёт тунеллирования в WPF, кому интересно, можете прочитать
    https://www.c-sharpcorner.com/article/difference-b...
    Ответ написан
    Комментировать
  • Как поставить игру на паузу, если игра связана с мышкой?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Заблокировать скриптом данную функцию, если у ней есть доступ, либо вывести по верх какой-то элемент, который технически заблокирует элемент ниже
    Ответ написан
    Комментировать