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

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Как создавать потокобезопасные вызовы к элементам управления Windows Forms: https://learn.microsoft.com/ru-ru/dotnet/desktop/w...
    void FormAMethod()
    {
        if (formB.InvokeRequired)
        {
            formB.Invoke( () => formB.Text = "data" );
        } 
        else
        {
           formB.Text = "data";
        }
    }
    Ответ написан
    Комментировать
  • Почему картинка начинает весить больше?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Потому что jpg, png и bitmap - это три разных формата с разными степенями сжатия и кучей своих, индивидуальных опций. RTFM метода .Save().
    Ответ написан
    Комментировать
  • Как правильно организовать проект на ASP.NET Core, чтобы минимизировать дубляж кода?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Либо делать декомпозицию и писать общие для всех объектов методы либо взять готовое решение, где уже есть всё нужное или хотя бы основная часть.
    Ответ написан
  • Какие есть способы компиляции проекта WinForms?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Только стандартный компилятор МС. Ибо WinForms - это по сути обёртка над древним легаси кодом и попытка сделать удобный визуальный конструктор форм и которая сама по-себе уже стала легаси. А, ну и в проектах WinForms всё равно приходится использовать костыли для тех или иных вещей. Вы думаете кто-то будет делать и поддерживать C# компилятор для дважды древнего легаси проекта МС? Даже если найдётся какой-то другой компилятор - с вероятностью 95-99% вообще любой проект WinForms придётся долго и мучительно пичкать костылями, чтобы оно просто хотя бы собралось. Да и потом еще надо будет заставить это всё не просто работать, а правильно работало. Даже искать решение нет смысла - вероятность проблем практически 100%.
    Ответ написан
    Комментировать
  • Как перевести текст из заранее неизвестной кодировки в UTF-8?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Кодировок очень много всяких и в идеале надо для каждой кодировки писать свой код детектирования. Проще собрать словари слов для всех кодировок и прогонять текст через все кодировки и анализировать результат. И вот в той, в которой больше всего получилось слов из словаря - та, возможно, и есть нужная.
    Ответ написан
    Комментировать
  • Как разобрать json на классы и переменные в c#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    1. Пишете нужный класс с нужными данными: Как правильно описать класс для библиотеки Newtonsoft.Json C#?
    2. Открываете ман Newtonsoft.json в разделе конвертеров: https://www.newtonsoft.com/json/help/html/CustomJs... и далее в гугле.
    3. Пишете свой конвертер
    4. Радуетесь результату
    Ответ написан
    1 комментарий
  • Как считать текст из файла и записать в другой со всеми переносами строк?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    RTFM:
    File.ReadAllLines
    ...
    Этот метод открывает файл, считывает каждую строку файла, а затем добавляет каждую строку в качестве элемента массива строк. Затем файл закрывается. Строка определяется как последовательность символов, за которой следует возврат каретки ('\r'), канал строки ('\n') или возврат каретки, за которым сразу же следует передача строки. Результирующая строка не содержит завершающего возврата каретки и (или) перевода строки.
    Ответ написан
    Комментировать
  • Как преобразовать из char массива в string массив в си шарп?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    1. На бумажке словами расписать алгоритм
    2. Нарисовать схему алгоритма
    3. Сделать декомпозицию схемы до самых простых действий
    4. Найти в документации по языку методы реализации этих самых простых действий
    5. Написать код
    6. Продебажить и исправить ошибки
    Ответ написан
    Комментировать
  • Как сереализовать JSON по определенным полям?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    • Кроме ContractResolver, есть еще ShouldSerialize: https://www.newtonsoft.com/json/help/html/Conditio...
    • Можно просто разделить на разные классы с разными полями
    • Можно дополнить класс отдельными методами для сериализации в разные варианты
    Ответ написан
  • Как использовать имя свойства класса из переменной?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Перегрузка индексатора
    public class Foo : Dictionary<string, int>
    {
        public new int this[string key]
        {
            get => this.GetValueOrDefault(key);
            set => base[key] = value;
        }
    }

    Foo f = [];
    string k = "key";
    Console.WriteLine($"Value not set: {f[k]}");
    f[k]++;
    Console.WriteLine($"Value ++: {f[k]}");
    f[k]++;
    Console.WriteLine($"Value ++: {f[k]}");
    f[k]--;
    Console.WriteLine($"Value --: {f[k]}");

    Value not set: 0
    Value ++: 1
    Value ++: 2
    Value --: 1
    Ответ написан
    Комментировать
  • Допустим у меня есть массив byte[] bytes и этот массив символизирует машинныый код программы, могу ли я запустить эту програму из своего кода?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Да, можете. Как-то так: https://keestalkstech.com/2016/05/how-to-add-dynam...
    Ответ написан
    Комментировать
  • Каким образом в WPF С# можно сделать так, чтобы кнопка закрытия (крестик) не закрывала окно?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Ответ написан
    Комментировать
  • Почему форма имеет такой некрасивый стиль?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    Это стандартный вид стандартных окон ОС Windows. Не нравится стиль - всегда можно нарисовать свой. WinForms использует древнее легаси API GDI+. Есть еще WPF, MAUI - там уже более новое. У вас какой именно вариант? Там немножко по-разному стили задаются. При желании можно нарисовать все что угодно. Ко всему есть подробнейшие мануалы в сети.
    Ответ написан
    Комментировать
  • Почему не открывается после сборки?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Скорее всего что-то не было установлено - дотнет, библиотеки, пакеты и другие зависимости. Сделайте отладочную сборку с выводом всех ошибок и запустите её на целевой машине и смотрите, что оно требует. Аналогично с дистрибутивом - убедитесь, что все зависимости включены в дистрибутив и устанавливаются как и куда надо. Тоже сделайте отладочную сборку и проведите отладку дистрибутива.
    Ответ написан
    Комментировать
  • Как найти ближайшее число в списке из целых чисел?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Взять бумажку, ручку, лист бумаги и выполнить следующую последовательность действий:
    1. Расписать задачу текстом - что, как, зачем и почему
    2. Сделать декомпозицию задачи в несколько итераций до самых простых и понятных действий
    3. Написать простой и логичный псевдокод
    4. Используя написанный псевдокод реализовать логику в реальном коде
    5. Проверить и продебажить работу кода на каждом шаге, что все работает именно так, как и должно
    6. Внести исправления и доработки в код по необходимости
    Ответ написан
    Комментировать
  • Чем отличается в с# например int a {get;} от int a {get; private set;}?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    int a { get; }
    Свойство только для чтения: можно записать только в конструкторе или инициализаторе, а в методах класса и других способах нельзя изменить.

    int a { get; private set; }
    Свойство только для чтения снаружи класса: можно записать только внутри класса - в конструкторе, методе и в остальных способах.
    Ответ написан
    Комментировать
  • Как обезопасить программу С# от взлома?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Взломать можно все, что угодно - это лишь вопрос объема прикладываемых усилий/времени/денег для этого. Со стороны разработчика можно только осложнить этот процесс, но не предотвратить. Стандартная практика - осложнить взлом ровно на столько, чтобы объем затрачиваемых на взлом усилий себя не окупил или получаемая выгода была минимальна. Для начала вам следует определиться с ценностью того, что вы хотите защитить в своих приложениях и определиться с бюджетом времени/денег для затрат на защиту этих важных для вас данных, процессов и прочего. А уже потом прорабатывать меры защиты. Судя по вашим вопросам вам потребуется нанять консультанта, который поможет подобрать оптимальные для вас меры защиты.
    Ответ написан
    6 комментариев
  • Как разумно поставить себе начало в программировании (C++ и C#)?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Стоит ли мне двигаться дальше в изучении C++ или пока не поздно пересмотреть свои взгляды, касательно моего выбора?

    Если нравится и интересно - то да, почему нет-то? ЯП - всего лишь инструмент. Как молоток или гаечный ключ. Если умеешь пользоваться - то запросто берешь любой молоток и забиваешь гвоздь. Разонравятся плюсы или будут другие задачи, где плюсы не очень - переключайтесь на C#.

    Не поздно начинать своё обучение

    Нет, никогда не поздно.

    дайте пару советов и пожеланий, касаемо обучения

    Уже давно все есть: https://roadmap.sh/cpp

    Будут ли проблемы в трудоустройстве, если выбор останется неизменным

    В целом зависит только от вас и прикладываемых вами усилий. А так - под плюсы да, действительно вакансий не так уж много и есть некоторые сложности в их поиске, а те что есть - обычно ближе к оборудованию, робототехнике, МК и прочему. Если направление интересно - то почему нет-то? Еще отличным выбором будет C#/dotNet - сейчас он больше в сторону веба развивается, но и для десктопной разработки тоже достаточно популярен.
    Ответ написан
    1 комментарий
  • Можно ли демонстрировать или отображать программу .exe в окне своей же программы?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    И есть вообщем такая потребность, интегрировать окно Hammer Editor (Создание уровней для игр на движке Source) в проект.

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

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Организовать большую команду, состоящую из множества более маленьких команд, которые специализируются на своей части. Сам проект разбивается на множество более мелких проектов, а эти проекты на еще более мелкие модули. Для каждой задачи или группы проектов - своя команда. Разработка приложений такого объема занимают сотни тысяч и миллионы человеко-часов. Примерно так:
    1. Составляется краткое ТЗ
    2. Максимально подробно описывается проект в виде более детального ТЗ
    3. Нанимаете опытного IT менеджера
    4. Менеджер собирает команду для разработки частного ТЗ полностью со всеми деталями проекта
    5. На основе ЧТЗ формируются требования к командам для реализации проекта
    6. Подготавливается план разработки проекта
    7. Нанимается команда или команды сопровождения и поддержки - системные администраторы, менеджеры, аналитики, консультанты, бухгалтеры, юристы и прочие
    8. Организовывается рабочее пространство для команд разработки
    9. Нанимаются и организовываются команды разработки в соответствии с планом
    10. Ну и далее начинается основная работа - поэтапная реализация проекта
    Ответ написан
    Комментировать