Ответы пользователя по тегу C#
  • Как в С# получить ответ от метода из Objective-C?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    bool flag = true;
    if(flag)
    {
        Console.WriteLine("Flag is true");
    }
    flag = false;
    if(flag == false)
    {
        Console.WriteLine("Flag is false");
    }
    Ответ написан
  • Как провести удаление функции в c#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    public class Foo
    {
        public Action Bar;
        public bool BarEnabled = true;
    
        private void _Bar()
        {
            if (!BarEnabled) { return; }
            // Some code
        }
    }

    public class Foo
    {
        public Action Bar;
    
        public void BarOn()
        {
            Bar = _Bar;
        }
    
        public void BarOff()
        {
            Bar = Noop;
        }
    
        private void _Bar()
        {
            // Some code
        }
    
        private static void Noop() { }
    }
    Ответ написан
    2 комментария
  • Что нужно знать, чтобы написать такую физику (видео)?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Что нужно знать, чтобы написать такую физику (видео)?
    Школьный курс физики.

    И как думаете, сколько уйдёт времени, чтобы научиться такому, при условии упорного обучения?
    Чему именно научиться?
    Ответ написан
    2 комментария
  • Лучшие видеуроки по c#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Попробуйте изучать программирование, а не ЯП. Ибо ЯП - это инструмент. Как отвертка или молоток. Когда знаешь и понимаешь программирование - то ЯП легко изучается в процессе его использования.
    Ответ написан
    Комментировать
  • C# Timer - Анимация. Как уменьшить нагрузку на ЦП?

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

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

    Так не будет работать: вы изнутри локальной сети пытаетесь получить доступ на порт роутера, который смотрит в интернет - конечно он не будет форвардить изнутри внутрь. Роутер ожидает подключения снаружи и будет форвардить соединение только из интернета. Либо запускайте клиента где-то в интернете либо используйте прокси.
    Ответ написан
    2 комментария
  • Нужно дать процессу SeDebugPrivilege, можете подробней рассказать как это сделать на C#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Ответ написан
    Комментировать
  • Есть адекватная альтернатива Visual Studio?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Где там перегруженность? Любые панели легко закрываюстя и кастомизируются. А зачем х64 версия? Юзаю в виртуалке - все летает отлично.
    Ответ написан
    Комментировать
  • Как Запустить приложение WinForms C# на другом компьютере без Visual Studio - C#?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    1. Установить все обновления.
    2. Поставить самую свежую версию DotNet.
    3. На всякий случай проверить систему sfc /scannnow
    4. Используя Procmon.exe выяснить какой именно DLL не хватает и исправить.
    Ответ написан
    2 комментария
  • Как добавить программно в цикле элементы управления?

    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 комментариев