• Как правильно использовать конструктор?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Конструктор должен иметь одну ответственность - инициализировать ресурсы. Рисовать он не должен.

    Так что вариант два - в топку.

    Если нужно одновременно создать и нарисовать - создайте для этого статический метод, который создаст, нарисует и вернет экземпляр.
    Ответ написан
    Комментировать
  • Можно ли в ComboBox добавить дополнительную информацию?

    k1lex
    @k1lex
    Программист торг. сети. C# (WPF, WinForms), T-SQL
    Для WinForms:
    Установите поставьте на DataSourse у ComboBox вашу таблицу. Затем в ValueMember укажите поле ID а в поле DisplayMember ваше поле Name.
    Вот тут можете посмотреть информацию как раз по вашему вопросу и по List и ComboBox
    metanit.com/sharp/windowsforms/4.8.php

    Если WPF используете, то там практически тоже самое
    Ответ написан
    Комментировать
  • Есть ли у БД лимит по размеру?

    unitby
    @unitby
    Есть в зависимости от выбранного движка (исчисляются террабайтами)
    https://habrahabr.ru/post/64851/

    Есть также советы по оптимизации в зависимости от задач.
    Тут полезна книга mysql оптимизация производительности

    Правильная архитектура БД и проблем у Вас не будет.
    Ответ написан
    Комментировать
  • Как задать Binding для PasswordBox?

    @i_light
    Могу WPF/Silverlight, EF, WCF, T4, ищу работу Мск
    Binding для PasswordBox не реализован вполне намеренно, чтобы не было так просто перехватить пароль, введённый в поле.

    В качестве стандартной и относительно безопасной практики, часто пользуюсь передачей PasswordBox-а в команду логина параметром.

    <TextBox Text="{Binding Login}" x:Name="TbxLogin" />
    <PasswordBox x:Name="PasswordBox" />
    <Button Content="Log in" Command="{Binding SigninCommand}"
    		CommandParameter="{Binding ElementName=PasswordBox}" IsDefault="True" />


    public ICommand SigninCommand { get; set; }
    private void Signin(object param)
    {
    	var passwordBox = param as PasswordBox;
    	if (passwordBox == null)
    		return;
    	var password = passwordBox.Password;
            ...
    }
    Ответ написан
    Комментировать
  • Может ли выполнение одной программы разными пользователями повлиять на ее работу?

    GavriKos
    @GavriKos
    Ну для сферической программы в вакууме - да, может. .NET тут ни при чем. Простой пример - у программы есть файл настроек. Неизвестно как в него настройки пишутся - может файл на запись открывается один раз при старте программы - тогда другие инстансы просто не получат к нему доступа. В общем - варианты возможны.
    Ответ написан
    3 комментария
  • С#. Почему локальным переменным, определенным в методе, необходимо задавать начальное значение, а полям класса можно не задавать?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    И там и там можно не задавать, нужно понимать что вы хотите сделать.
    using System;
    
    public class Test<T>
    {
        // Перед вызовом конструктора выставится в default(int), то есть 0 
        private int i;
    
        // Для ссылочного типа default(object) будет null
        private object obj;
    
        // default(T)
        private T t;
    
        public Test()
        {
            // Не инициализированная переменная
            int foo;
    
            // error CS0165: Use of unassigned local variable 'foo'
            Console.WriteLine(foo.ToString());
    
            foo = 0;
    
            // У foo появилось значение, теперь переменной можно пользоваться
            Console.WriteLine(foo.ToString());
    
            int bar;
    
            // error CS0165: Use of unassigned local variable 'bar'
            Ref(ref bar);
    
            // Для ref нужна инициализированная переменная
            Ref(ref foo);
    
            // Для out не нужна
            Out(out foo);
            Out(out bar);
        }
    
        private void Ref(ref int r)
        {
            r = 0;
        }
    
        private void Out(out int o)
        {
            o = 0;
        }
    }

    Подробнее читайте в MSDN здесь и здесь.
    Ответ написан
    Комментировать
  • C# конкатенация строк?

    AnnTHony
    @AnnTHony
    Интроверт
    Ответ написан
    Комментировать
  • C# конкатенация строк?

    @dmitryKovalskiy
    программист средней руки
    1)Самый простой способ - String.Format.
    Пишете
    sql = String.Format("UPDATE ssc_post16.t_trains SET col1={0},..... colN = {N}",value1,value2 и т.д.)

    2)Чуть похитрее StringBuilder. Последовательный Append каждого кусочка вашего запроса.
    3)Параметризованный запрос с переменным врод "@col1","@col2" и т.д. и уже в SQLCommand передавать значения этих переменных.
    4) Хранимая процедура, принимающая набор переменных и исполняющая такой запрос.
    5) ORM вроде EntityFramework
    Ответ написан
    Комментировать
  • Как с помощью конструктора создать его же свойство?

    GavriKos
    @GavriKos
    А class это что? Если строка или число - switch-case (лучше в отдельном методе, GetInventoryForClass). Если это класс (как единица ООП) - то у самого класса и делайте GetInventory. Второй вариант красивее и правильнее, по идее.
    Ответ написан
    1 комментарий
  • Денормализация бд, изменение структуры или что еще добавить?

    @dmitryKovalskiy
    программист средней руки
    Треш это не структура таблиц, которая простейшая внешне, а 4 уровня вложенности SELECT'a. Это расстрельная статья. Разбирайтесь сначала с запросами, а уж потом с нормализацией данных.
    Ответ написан
    3 комментария
  • Системный vs Прикладной программист?

    @asd111
    1. Вакансий больше всего под веб программирование и разного рода финансовый софт. Java, C#, Python, PHP.
    2. Зарплата примерно одинаково у всех. Лучше всех тем кто работает удалено на заграничных заказчиков.
    3. Стабильность зависит от компании. Например в jetbrains и в google всегда будут вакансии. У мелких компаний соответственно работы меньше и такая компания может внезапно разорится.
    4. Google будет всегда. Машинное обучение будет всегда. Игры тоже будут всегда.
    5. Муторность. Gamedev - делаешь игровой AI, графику и т.п. В основном геометрия(произведение векторов, матриц и т.п. Google и т.п. web - работаешь со строками, с базами данных, с машинным обучением и т.п.
    Сменить сложную область на web всегда можно, т.к. там учить особо нечего. Тем более после написания игрового сервера на котором можно играть с ботами. Разница пожалуй в том что если быть хорошим веб или Java, C# программистом, то можно в молодом возрасте стать senior или нач. отдела с соответствующей зарплатой(более 100 тыс. руб. мес.). В игрострое стать senior C++ не так то просто, а начальником отдела тем более.

    В целом к игрострою я отношусь прохладно, поскольку от игр нет практической пользы, зато бывают случаи когда из за игр человек портит свое здоровье. На мой взгляд лучше делать медицинские тренажеры и оборудование, промышленных роботов, автопилоты для гражданских машин и самолетов, т.к. если работать на военных то может появиться запрет на выезд, а хорошие программисты часто уезжают, потому что за границей лучше.
    Ответ написан
    2 комментария
  • Чем отличается архитектура приложения от его алгоритмов?

    @res2001
    Developer, ex-admin
    Архитектура первична и обычно ее достаточно проблематично изменить в готовом приложении, в отличие от алгоритмов.
    Ответ написан
    Комментировать
  • Какова архитектура многоклиентской программы?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    Если и дальше планируется использовать планшеты в движении и при беспроводном подключении, то от RemoteDesktop в любом его проявлении надо уходить, ибо проблемы никуда не исчезнут.

    Суть проблемы в том, что WiFi стандарт вообще не предусматривает роуминга как такового, и реализуется роуминг методом хитрых костылей. В результате при переходе с одной точки на другую возможны разрывы связи, и ваше приложение должно уметь их корректно обрабатывать, а RemoteDesktop явно не умеет этого делать.

    Поэтому вам нужен либо тонкий клиент, либо браузер, где вы сможете контролировать и корректно обрабатывать таймауты связи с сервером, прозрачно для пользователя.

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

    В общем меня это сводит с ума и я не понимаю, неужели все сводится к тому,чтобы брать и гуглить?

    Данная методология программирования называется Stack Overflow Driven Development, и практикуется даже программистами экспертного уровня.
    Ответ написан
    Комментировать
  • Реально ли студенту получить работу за рубежом?

    opium
    @opium
    Просто люблю качественно работать
    В вашем случае надо просто учиться за границей
    Ответ написан
    Комментировать
  • Как разворачивать программу при запуске копии этой программы?

    petermzg
    @petermzg
    Самый лучший программист
    Вот
    Идея. Именованный мьютекс + отправка сообщения.
    Ответ написан
    Комментировать
  • Какова роль Autofac в WPF приложениях?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    IoC, DI гуглите.
    Ответ написан
    Комментировать
  • Как убрать возможность у пользователя закрывать программу?

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

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > c# на нем еще пишут?)
    С чего вдруг столь странный вопрос?

    > Есть ли смысл браться за все направления серверной разработки?
    Есть.
    Я еще и десктопную туда добавил, и мобильную, и еще ряд более редких направлений. И ни разу не жалею.

    > Что учить?
    Учат - стихи, наизусть.
    А программированию - учатся.
    Главное в программисте - это понимание общей логики. Веб не исключение. Скажем, формы (form) - они и в Африке формы. HTTP-запросы - они и в Африке HTTP-запросы. MVC - он и в Африке MVC. И главное - гугл - он и в африке гугл.
    И чем больше вы изучите разных средств (в смысле изучите на практике, а не сколько учебников прочитаете), тем обширнее, глубже и тверже будут эти знания.
    Да, если говорить об учении наизусть (чтоб прям все функции помнить без гугла), то лучше что-то одно, чем много, ведь голова-то имеет ограниченный объем памяти. Но знать функции наизусть - задача кодера, а не программиста.
    Ответ написан
    4 комментария