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

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    string[] items = new string[]{ "Item 1", "Item 2", "Item 3" };
    foreach(var item in items){
        new Label { Text = item };
    }
    Ответ написан
    5 комментариев
  • Как сделать поддержку плагинов в своей программе?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Если сама программа на C# - то лучше и плагины на C# делать, а не накручивать лишнего и не усложнять. Надо просто написать интерфейс IMyPlugin - и на базе этого интерфейса делается библиотека классов, которая и будет плагином. Данный интерфейс включается как в саму программу, так и в плагин.
    /// <summary>
    /// Интерфейс плагина
    /// </summary>
    public interface IMyPlugin
    {
        /// <summary>
        /// Инициализация плагина
        /// </summary>
        /// <returns></returns>
        bool Init();
    
        /// <summary>
        /// Завершение работы плагина и освобождение ресурсов
        /// </summary>
        void Dispose();
    
        void PluginAction1();
        void PluginAction2();
    }

    И так далее - в интерфейсе указываем сигнатуру методов, свойств, событий, которые плагин должен поддерживать 100% и через которые плагин будет взаимодействовать с основной программой.
    Ответ написан
    Комментировать
  • Программирование или что-нибудь другое?

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

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Традиционный способ разбора арифметических выражений - это стек. Задаем приоритет операций и далее из строки выбираем числа и операции в соответствии с приоритетом и складируем в стек. В калькуляторе все еще проще: есть три основные переменные - "операция" и "операнд1" "операнд2". Когда пользователь набирает число - оно показывается на экране, это "операнд1", когда пользователь нажимает кнопку "операция" - переменная "операнд1" копируется в "операнд2" и ставится флаг, который разрешает перезапись текущего значения цифровой клавиатурой (т.е., число на экране надо будет набрать заново). И далее уже есть два варианта: либо сразу после ввода любого числа выводить результат в дополнительном поле либо пользователь сам нажимает "=".
    Ответ написан
    1 комментарий
  • C# Desktop программист, куда податься?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Во фриланс, удаленку и опенсорс: фриланс/удаленка позволит работать с клиентами со всего мира, а работа над опенсорсными проектами даст хороший плюс в портфолио и опыт, а так же принесет пользу. Полно удаленных вакансий - незачем ограничиваться своим городом (который может быть довольно маленьким и IT вакансий там может быть очень мало). Для начала сделать себе портфолио (можно использовать как любой онлайн ресурс так и свой сайт сделать), затем начать работу с русскими фриланс биржами и сайтам с удаленной работой (фрилансим и т.п), и параллельно заниматься каким-нибудь опенсорс проектом и развивать навыки общения на английском, а через несколько лет можно начинать работать с международными фриланс-биржами.
    Ответ написан
    4 комментария
  • Есть ли отдельный компилятор для c#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Гугл -> MonoDevelop, Xamarin, .Net Core.

    Но мне нужно язык строго типизированный Gargabe Collector чтобы сам не убирал, а оставлял мне.
    В С# GC работает автоматически как бы и программисту нет необходимости вручную выделять/освобождать память. Чем он не устраивает? Каковы задачи в целом? Каждый ЯП решает какие-то определенные задачи. В общем случае вам подойдет С++ и иже с ним.

    Не подскажите после изучение синтаксиса языка чтобы прогать что нужно?
    Опыт решения реальных задач.
    Ответ написан
    8 комментариев
  • Как средствами с++/с#/java обратиться к видеокарте, как это делает opengl?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Называется "OpenGL API".
    Ответ написан
    Комментировать
  • Что выбрать для перехода?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Перемешается только в том случае, если в голове будет каша (ну, в таких случаях вообще исключительно редко попадают в высокоинтеллектуальные сферы работы). А так - никаких проблем. Достаточно просто выработать привычку переключения глобального контекста в голове.
    Ответ написан
    Комментировать
  • Какой стек технологий выбрать для приложения в трее под разные настольные ОС?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Если надо максимально автономное и есть знание или желание познать С++ - то QT, если это не слишком принципиально - то можно и C# + Mono, но тут сложность в том, что кроме самого приложения надо тащить и устанавливать рантайм библиотеки - а это еще мегабайт 30-50.
    Ответ написан
    2 комментария
  • Типизированный лист, поиск объектов от первого до последнего?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    var myList = new List<string>(){ "item 1", "item 2", "item 3" };
    // Обычный цикл по списку:
    foreach (string str in myList)
    {
        Console.WriteLine("Item is: {0}", str);
    }
    // Лямбда:
    myList.ForEach( (str) =>
    {
        Console.WriteLine("Item is: {0}", str);
    });
    Ответ написан
    Комментировать
  • Как правильно создать собственный тип данных возвращающий два значения в C#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    public class MyType
    {
        public int a = 0;
        public int b = 0;
        public MyType(int a = 0, int b = 0)
        {
            this.a = a;
            this.b = b;
        }
    }


    И далее использовать по своему усмотрению:
    public static MyType Point2d(int x, int y)
    {
        return new MyType(x, y);
    }

    public static MyType Point2d(int x, int y)
    {
        MyType result = new MyType(x, y);
        return result;
    }

    public static MyType Point2d(int x, int y)
    {
        MyType result = new MyType();
        result.a = x;
        result.b = y;
        return result;
    }

    public static MyType Point2d(int x, int y)
    {
        MyType result = new MyType(x);
        result.b = y;
        return result;
    }
    Ответ написан
    7 комментариев
  • Как написать сервер клиент на C#?

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


    Сервер работает следующим образом (примерно, детали зависят от особенностей архитектуры и прочее):
    1. Слушает определенный порт и ждет подключения к порту;
    2. После подключения клиента к порту передает соединение в очередь к пулу процессов-воркеров (по числу процессорных ядер);
    3. Воркер обрабатыват соединение, проводит необходимые проверки, логин клиента и т.п.;
    4. После обработки соединение попадает в список подключенных процессов и обрабатывается ядром сервера.


    Клиент работает примерно так:
    1. Ищет сервер;
    2. Подключается к порту;
    3. Проходит аутентификацию и авторизацию;
    4. Ожидает данные от сервера / передает данные серверу.
    Ответ написан
    Комментировать
  • Что учить ASP.NET MVC 5 или ASP.NET Core?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Учить надо ЯП, а не фреймворки.
    Ответ написан
    4 комментария
  • Как получить имя другого приложения C# .net?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    1. Найти окно по его классу.
    2. Найти окно по процессу.
    3. Передать название окна из второго приложения в первое любым удобным способом (файл, пайп, сокет, etc.)
    Ответ написан
    2 комментария
  • Как быстро въехать в 2D рисование с помощью OpenGL+OpenTK?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Ну, тут алгоритм на самом деле очень простой:
    Встретилось непонятное слово/термин -> Загуглил -> Разобрался с его применением / сделал пару упражнений на применение -> Читаем дальше.
    Ответ написан
    Комментировать
  • Как правильно подключить библиотеку к новому проекту?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Это значит, что при переносе проекта на другой ПК файл библиотеки не был перенесен, т.е. проект был перенесен лишь частично. Надо найти, где локально лежит файл подключенной библиотеки и перенеси этот файл на другой ПК.
    Ответ написан
  • Есть ли сервисы, где можно нанять тутора (ментора)?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    А что именно не получается? Тут на днях про веб-сервер спрашивали — я там подробно расписал алгоритм работы с сокетами. В т.ч. и про асинхронную работу.
    Ответ написан
    Комментировать