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

    @rPman
    Этот процесс называется сериализация и десериализация. Есть бинарные и текстовые (xml/json/...). Формат определяете вы или берите готовый (.net предлагает штатные сериализаторы - BinaryFormater, гуглите, stackoverflow дает готовые примеры). К сожалению главный недостаток штатного сериализатора - стоит измениться версии компилятора и совместимость разваливается (текстовые само собой не так часто), хз зачем и почему так сделали, вполне возможно что если покопаться можно поддерживать разные версии в пределах одного приложения, но это достаточно глупо.

    Весь мир аккуратно переходит на google protobuf, реализация которого есть под все популярные языки и с пяток непопулярных, пользуйтесь лучше им.
    Ответ написан
    Комментировать
  • Как разбить время на случайные промежутки C#?

    @rPman
    Переводите в секунды T.
    Если нужно равномерное распределение, то просто берите N случайных чисел со значением от 0 до T и сортируете их по возрастанию.
    Ответ написан
    Комментировать
  • Как можно реализовать взятие таблицы из базы данных?

    @rPman
    Когда то очень давно, когда я писал на .net с помощью win forms, я пользовался dataset, так как поддержка работы с ними и с базами данных встроена в ide.

    Т.е. вы можете связать объекты dataset с помощью data bindings providers с результатом запроса в базу данных (причем все это из мышекозекательного интерфейса visual studio), связать датасеты с элементами ui на форме, и все это будет работать чуть ли не автоматически (с нулями легкие заморочки если есть связи на форме) и работать из кода с данными в памяти, включая сериализацию и десериализацию одной командой в файл.

    p.s. если честно, такого быстрого и удобного инструмента разработки формочек, связанных с базой данных, я не видел.
    Ответ написан
  • Как подключиться к SQLite в C#?

    @rPman
    Заверни проблемный блок в try {} catch() {} и выводи ошибку, все ответы получишь
    p.s. путь до файла перепроверяй
    Ответ написан
    Комментировать
  • Разница логики в условие if?

    @rPman
    Так как операторы == и ! можно перегрузить, то будет зависеть от их реализации, для чисел и то и другое сравнение с нулем, но идеологически if(!x) это две операции, когда как == только одна, понятно что компилятор может оптимизировать по своему.

    Еще сравнивать с false - читабельнее.

    И лучше писать:
    if(false == value) {...}
    это сильно уменьшает вероятность ошибки (например вместо == написали =)
    Ответ написан
    1 комментарий
  • Как можно по нажатии на горячие клавиши запускать какое-либо приложение на C#?

    @rPman
    .net не содержит для этого методов, поэтому придется подключать win32 dll

    Вот первый же пример из гугла
    Ответ написан
    Комментировать
  • Как Правильно реализовать условную компиляцию с#?

    @rPman
    Конечно можно вставлять в код самого приложения обычные условные операторы, проверяющие версию,.. но почему обязательно хотите избежать #директив препроцессора, фактически он для таких вещей и создавался!

    Не хотите пользоваться штатным препроцессором - пилите свой, который будет под нужную версию подготавливать проект для сборки, буквально собирая его из файлов. Т.е. это будет приложение (простенькие скрипты и какое-то описание файлов проекта) которое вы будете запускать для создания релиза.
    Ответ написан
    Комментировать
  • Как встроить шрифт в WebBrowser?

    @rPman
    Штатно на сколько мне известно нет способа сделать embedded resources, точнее не получится просто зарегистрировать свой протокол внутри приложения.

    Поэтому, инжектим необходимые элементы на страницу, в виде data uri scheme (файл кодируется в url в виде строки например data:application/vnd.ms-opentype;base64,iVB...==, отслеживая onload или еще по каким условиям.

    кстати .net WebBrowser это все еще internet explorer 11 со всеми вытекающими от сюда заморочками
    Ответ написан
  • Какие есть компиляторы для C#?

    @rPman
    у mono project есть свой компилятор
    https://www.mono-project.com/docs/about-mono/langu...
    Ответ написан
    Комментировать
  • Как заморозить поток в процессе?

    @rPman
    win api SuspendThread
    можно воспользоваться утилитой https://www.codeproject.com/Articles/2964/Win32-pr...
    Ответ написан
    Комментировать
  • Невозможно найти исполняемый файл компилятора csc.exe?

    @rPman
    Только что в MVS Community 2017 ваш код собрался без ошибок, ничего не менял и не настраивал.

    Попробовать переустановить .net framework точнее обновить до последней, или в установщике указать repair
    Ответ написан
    Комментировать
  • Почему происходит выход за границы массива?

    @rPman
    В массиве key лежат индексы выходящие за пределы массива letters, а точнее при j=0 в данной строке обращаетесь к keys[1] со значением 5, когда как в letters максимум 4.
    Ответ написан
    Комментировать
  • Что использовать для автоматизаций действий в браузере в параллельном или многопоточном режиме?

    @rPman
    c# а точнее .net в поставке имеет контрол WebBrowser, это полноценный браузер (раньше был интернет эксплорер, сейчас хз edge это или уже на webkit, если использовать mono то это будет firefox), с ним невероятно просто работать, хотя на практике вместо того чтобы ковыряться в DOM документа средствами .net лучше это делать внедрив javascript внутрь страницы.

    Выглядит работа примерно так, кидаете на форму контрол, на событие onload получаете доступ к документу webControl.document, дальше это уже браузерные dom методы. Совет, вместо добавления script на страницу лучше запускайте ее по таймеру .setInterval с нулевым интервалом, тогда скрипт будет запущен в контексте страницы а не какой то песочницу .net хотя последнее возможно подойдет для многопоточного доступа (осторожно контрол не предполагает многопоточность, но вы можете по ксперементировать, открыв несколько контролов и работая с ними из разных потоков, отпишитесь о результатах)

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

    @rPman
    делать периодические запросы к WMI
    https://docs.microsoft.com/en-us/windows/win32/wmi...
    смотреть performance data provider

    первая же ссылка из гугла пример, не совсем то но думаю порыть документацию и допилить.
    Ответ написан
    Комментировать
  • C# Net Core Web Api. Можно ли отправить файл через POST api на сервер и получить временную ссылку на него?

    @rPman
    https://docs.microsoft.com/ru-ru/aspnet/core/mvc/m...
    файл складывайте в определенную папку и удаляйте по таймауту (неправильно но просто), можете анализировать логи сервера чтобы понять скачивает кто файл или нет, либо реализуйте раздачу файла сами (неправильно с архитектурной точки зрения)
    Ответ написан
    Комментировать
  • Возможно ли перенести проект C# на C++/CLI?

    @rPman
    Перенос приложений между 'языками' чаще создает проблемы не языков и синтаксиса, у c# и с++ они почти идентичны, но из-за используемых библиотек и фреймворков, а точнее отсутствие тех что есть у .net но нет для с++, в т.ч. многопоточности, привычной работы со списками/итераторами и т.п.

    Если же у вас наиболее скучный подход к разработке требуемого куска кода, например не используются внешние библиотеки и современный синтаксический сахар, то вы можете даже под opencl или nvidia cuda портировать свой код без особых шевелений.
    Ответ написан
  • Почему Application.Exit не работает, в чем смысл этого метода?

    @rPman
    Application.Exit не такая смертельная команда, именно из коннструктора ее не получается вызвать, вы можете завести свой boolean флаг необходимости выхода и вызвать этот метод из Form_Load (чтобы форма кратковременно не появлялась, можете в конструкторе или в свойствах сделать ее скрытой, а на Form_Load включать отображение).

    Например Environment.Exit(0) работает в любом случае но осторожно, деструкторы могут быть не вызваны.
    Ответ написан
    Комментировать
  • Как я могу получить историю google chrome из electron?

    @rPman
    Первая же ссылка в гугле на тот же stackoverflow, уж адаптировать код для nodejs будет не сложно?

    Коротко - история хранится в sqlite файле, есть правла риски что формат полей и таблиц будет меняться но не думаю что это фатально.
    Ответ написан
  • Как оптимизировать рисование линий в WPF?

    @rPman
    Тормозит наверное потому что на on paint перерисовываете все объекты (как минимум при добавлении новой?) Рисуйте линии в битмап однократно и уже его на on paint отрисовывайте.
    Ответ написан
  • Unity. Тормозит игра при соприкосновении двух коллайдеров?

    @rPman
    Безотносительно того что у вас за платформа, язык разработки, используемый фреймворк и прочее,на текущий момент не существует железа (а мобильники в этом деле сильно ограничены) способное выводить прозрачные спрайты (текстуры) друг над другом без потери производительности. Почти наверняка у вас там получается несколько прозрачных текстур (помимо фруктов еще интерфейс небось воткнули 2-3 штуки), вы превышаете лимит, после которого вместо аппаратного наложения начинает работать софтварный.

    Универсальное решение - после того как фрукт упал в корзину, дорисовывайте его в общую текстуру всех упавших в нее фруктов, а сам объект удаляйте. Таким образом у вас в корзине может лежать любое их количество. Точно так же можете считать область коллизий для оценки, куда падать новому фрукту, просто меняя конфигурацию одного объекта, вместо того чтобы заставлять машину каждый раз обсчитатывать кучу объектов.
    Ответ написан
    Комментировать