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

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Вариант 1 (Не рекомендую, но посмотреть можно)
    Вариант 2 (Тестирование .net приложений)
    Инструменты для тестирования
    Тестирование MVC (Советую для начала посмотреть всю главу, а потом делать выводы. Подходит НЕ ТОЛЬКО для MVC, можно использовать и для ваших проектов (Наверное))
    Ответ написан
    Комментировать
  • Почему асинхронная функция выполняется только один раз?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Для этого вставте вашу функцию внутрь while (true) { ... }
    Ответ написан
    1 комментарий
  • Как применить return внутри функции не используя его для выхода из функции С#?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Начните с изучения C# )

    Во-первых, у вас вопрос имеет тег "функциональное программирование", что ни коем образом не относится в C#.
    Во-вторых, return используется для возвращения некого значения ИЗ МЕТОДА, либо для выхода из тела МЕТОДА.
    В-третьих, в C# нет функций.

    На счёт вашего кода, внутри блока try/catch у вас вообще нет return. return у вас используется в конце тела МЕТОДА, т.к. метод обязан что-то возвращать, без return работать не будет))

    И вот, собственно, ответ на ваш вопрос: вам нужно использовать конструктор для вашей переменной stream. Почитайте об этом хотя бы тут
    Ответ написан
    Комментировать
  • В чём отличие делегата от события?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Событие - это когда что-то произошло и вы уведомляете систему об этом
    Делегат - это ССЫЛКА на метод с уже заданным набором параметров. Далее вы можете присвоить делегату любой метод, который удовлетворяет описанный делегат.

    Да, события, это тоже, частично, делегаты
    Ответ написан
    1 комментарий
  • Как изменить Collation(на кириллицу) в EF Core?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    EF Core по стандарту должен поддерживать кириллицу, по крайней мере, у меня с этим проблем не было. В чём у вас проблема именно?

    UPD:
    Вот пример куска БД старого проекта. БД создана на том же EF Core без дополнительных махинаций с языком
    639df57ae1369632626921.png
    Ответ написан
  • Как добавить поддержку кириллицы в post method Swagger?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Я так понял, вы отправляете json с клиента. Во первых, проверьте дебагом, как выглядит name перед отплавкой на сервер. Во вторых, проверьте дебагом, как выглядит name во время получения объекта на сервере. Третий этап - то, как name будет отправлено и сохранено в БД
    Ответ написан
    Комментировать
  • Как после выбора картинки через openfiledialog сохранить ее в другую папку?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Попробуйте File.Move()
    Ответ написан
    Комментировать
  • Что нужно знать для начала работы с .NET Core?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    нужно ли сначала выучить C#, или весь синтаксис .NET очень сильно отличается от С# и на нем писать не придется


    Выучите язык. Когда сможете хотя бы элементарные задачи решить, переходите на ООП. А после нескольких месяцев учений с утра до вечера можете попробовать какой-то десктоп фреймворк для закрепления материала. После ±5 проектов на Windows Forms или WPF начинайте подключать туда БД и использовать EF. После этих мучений можете пробовать входить в asp.net
    Ответ написан
    Комментировать
  • Каким образом лучше всего изучать программирование?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Microsoft каждый год планируется выпускать новую версию .NET, старые версии поддерживаются +- 3 года.
    Конкретно за книги, они учат логики и философии кодинга, где можно рассказать примеры и объяснить принципы работы "Водой", что является очень важным аспектом, т.к. при собеседовании на фирме вам будут давать [возможно] тесты по языку и фреймворку, а так же тестовое задание, где будет оцениваться как работоспособность проекта, так и правильность написания.
    Если смотреть в сторону профессиональных курсов, то вас будут ругать даже за неправильно названные переменные, это уже если не говорить об самой логике написния задачи.
    Цель подобных книг - закрепить понимание языка, а не зазубрить синтаксис. Тот же metanit показывает сугубо синтаксис и как правильно его юзать, но он вас никогда не будет учить, где его использовать, как и при каких условиях, почему этот метод плох, а где он будет незаменим. Тем более, что изучать что-то по метаните легко в начале, т.к. на сложный задачах вам метанит не поможет никак вообще. В этот момент вы поймёте, что там есть просто примитив, и вам придётся потратить много времени, что бы понять, как воду из метанита превратить в вино, которое нужно залить в проект

    Но для новичков лучше не наседать на книги, а делать упор на практику, но без "поводыря" очень сложно, т.к. если у вас не понимания самой логики построения, вам будет очень сложно что-то делать в будущем.

    Тут очень хороший пример с математикой: что бы быть хорошим математиком, ты должен не знать математику, ты должен её понимать. В программировании аналогично
    Ответ написан
    2 комментария
  • Стоит ли читать книгу Шилдта по С#?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    C# 4.0 это очень древний, нет смысла его читать. Microsoft каждый год планируется выпускать новую версию .NET, старые версии поддерживаются +- 3 года.
    Конкретно за книги, они учат логики и философии кодинга, где можно рассказать примеры и объяснить принципы работы "Водой", что является очень важным аспектом, т.к. при собеседовании на фирме вам будут давать [возможно] тесты по языку и фреймворку, а так же тестовое задание, где будет оцениваться как работоспособность проекта, так и правильность написания.
    Если смотреть в сторону профессиональных курсов, то вас будут ругать даже за неправильно названные переменные, это уже если не говорить об самой логике написния задачи.
    Цель подобных книг - закрепить понимание языка, а не зазубрить синтаксис. Тот же metanit показывает сугубо синтаксис и как правильно его юзать, но он вас никогда не будет учить, где его использовать, как и при каких условиях, почему этот метод плох, а где он будет незаменим.
    Но для новичков лучше не наседать на книги, а делать упор на практику, но без "поводыря" очень сложно, т.к. если у вас не понимания самой логики построения, вам будет очень сложно что-то делать в будущем.

    Тут очень хороший пример с математикой: что бы быть хорошим математиком, ты должен не знать математику, ты должен её понимать. В программировании аналогично
    Ответ написан
    Комментировать
  • Аналог звёздного оператора распаковки * из python в c#?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Цикл foreach хорошо подойдёт
    Кастомная функция для вывода всех элементов списка или массива
    Ответ написан
    Комментировать
  • Как мне визуализировать огромное количество данных из xml-файла?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Используйте загрузку данных в некотором объёме. Допустим, настройте своеобразные страницы для просмотра (Типа сайта фильмов, они не загружаются все миллион, а страницами) и просто вытаскивайте из списка/массива от n индекса до m (m < length) и выводите на экран, или куда вам там надо) Можете так же настроить какие-то сортировки для большего удобства, что-то типа, вывести последних 200 штук
    Ответ написан
    Комментировать
  • Простой способ хранения данных с серверной стороны C# WCF?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    1) Проверьте существование файла по указанному пути
    2) Писать путь к файлу прямым текстом - плохая практика, такие данные нужно хранить где-то в константном виде, либо в конфигурации
    3) Попробуйте записать в файл каждого юзера "По свойственно", т.е. каждое свойство/поле записать отдельно, это всё в цикле для каждого юзера
    4) Запустите дебаг (Для 3го пункта), проверьте, что находится в файле после записи каждого юзера
    5) Вообще, используйте базу данных)))
    Ответ написан
    Комментировать
  • Как запустить C# в VSCode?

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

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Для инициализации любого ссылочного типа используется ключевое слово new и конструктор
    Ответ написан
    Комментировать
  • Конвертировать строку в объект?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Используйте сериализацию JSON
    Ответ написан
    Комментировать
  • Как ввести логгирование в ASP.NET Core?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Логирование используется для записи ошибок в како-то файл. Например, если вы, при чтении из БД получили Exception, тогда вы обращаетесь к логеру и вызываете метод .LogError куда передает ошибку в виде строки. Эта строка будет записана в файл, откуда вы потом сможете это прочитать.

    Встроенный интерфейс ILogger<> подойдёт вам вполне. Для настройки места, куда будут сохраняться логи, читайте конфигурацию логера, как его правильно настроить

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

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Ну, вы движетесь в верном направлении. Создать статический класс в котором будут записаны данные конфигурации и просто вызывать его в тех местах, где это нужно. Если значение нужно только для его получения, можете позначить его readonly (Как вы уже сделали) или public Get; private Set; для свойств.

    Ещё как вариант, можете попробовать использовать статические файлы конфигурации
    Ответ написан
    Комментировать
  • Как читать только новые цифры, без старых чётных/нечётных чисел в текстовый документ?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Я бы советовал вам сперва улучшить ваш код до понятного уровня, а то тут сложно вообще что либо понять. К примеру: блок if вложен внутрь и никогда не будет работать, так как он отыгрывает роль блока else. Названия переменных просто ад какой-то, что за что отвечает - непонятно. Потоки без using. Для ввода с клавиатуры какого-то выбора используется string и блок switch. Разберитесь с этим

    Решение проблемы может быть в том, что у вас два блока if вложены, прочитайте про условные операторы и переделайте
    Ответ написан
    Комментировать
  • Как правильно произвести поиск строк в файле и извлечь из них данные?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Небольшой код для считывания данных из файла и записи в список:
    List<string> logs = new List<string>();
    using(StreamReader reader = new StreamReader("fileName.txt"))
    {
       while(!reader.EndOfStream)
       {
          logs.Add(reader.ReadLine());
       }
    }


    После этого, в списке logs будут все СТРОКИ из файла логов (Если он txt в данном случае). Далее, вы можете попробовать пройтись по этому списку и каждый элемент проверить с помощью метода класса String - IsContain который принимает аргументом строку. Если лог с ошибкой 100% имеет часть строки как Number of errors, вы можете сразу проверить сам лог

    Далее, можно уже просто по индексу искать, если у вас один и тот же паттерн для генерации данного лога ошибки, мол, если количество символов там не меняется никогда.

    Или можно применить метод Split(' ') для разбиения строки по пробелу, после чего элемент с индексом 6 будет иметь количество ошибок с точкой в конце (Как часть строки). После этого применить метод TrimEnd('.'), т.е. удалить указанный символ с конца строки и потом этот элемент просто int.Parse(...), что на выходе даст вам целое число ошибок. Но, лучше используйте int.TryParse(...)
    Ответ написан
    Комментировать