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

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Это ограничение, T должен реализовывать эти интерфейсы
    Ответ написан
    6 комментариев
  • C# Arduino, управление компасом?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    1. При рисовании сохраняете линии в List;
    2. Траекторию преобразуете в команды управления с учетом пробуксовки. По сути движение робота и есть набор команд которые он выполняет;
    3. Передаете данные в робота, тут или в самом начале заливаете через UART или в процессе движения по Bluetooth или др. беспроводному каналу передачи данных;
    4. Добавить канал обратной связи, чтобы робот передавал какую он сейчас выполняет команду + если подключить GPS, данные о местоположении и т.д.

    Вы не уточнили тех. подробности, какая плата, какой робот, поэтому, что-то кроме как обратиться к гуглу не посоветую, ну или тут, может, что-то и найдете
    Ответ написан
    Комментировать
  • Какой сервер нужен для asp.net core?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    asp.net core кроссплатформенный поэтому выбор ОС - это уже дело предпочтения. Хотя если ms sql server, то скорее это все же windows. asp.net core поддерживает ISS и Kestrel, однако у последнего достаточно ограниченные возможности, поэтому обычно если не хотят использовать ISS, то ставят NGINX и прописывают маршрут к Kestrel.

    Что касается железа, если сайт более менее оптимизирован, то ср. запрос выполняется примерно 100 мс и соответственно на одноядерной машине мы за минуту в ср. сможем обслужить 600 пользователей, если 2 ядра, то уже 1200. Поэтому Вам надо определиться с максимальной пиковой нагрузкой и рассчитать исходя из нее параметры процессора. Далее в asp.net CORE один запрос в ср. занимает 3 кБ памяти, соответственно, 1000 пользователей уже будут требовать порядка 1 МБ. Этот параметр также зависит от пиковой нагрузки.

    * если вы будите использовать asp.net, то память под запрос будет порядка 20 кБ
    Ответ написан
    1 комментарий
  • Как записать даные в таблицу с базы Mysql?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Наверное, как-то так:

    private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                tables.ItemsSource = fillGrid();
            }
    
    		public class Employee
            {
                public string EmployeePhone { get; set; }
                public string EmployeeId { get; set; }
                public string EmployeePib { get; set; }
                public string EmployeeEmail { get; set; }
                public string EmployeeMessage { get; set; }
                public string EmployeeIp { get; set; }
                public string EmployeeDate { get; set; }
            }
    		
            public List<Employee> fillGrid() {
                MysqlConn Conn = new MysqlConn();
                MySqlDataReader reader = Conn.ConnectionDataBase(Con.RetSet("Host"), Con.RetSet("User"), Con.RetSet("DB"), Con.RetSet("Pass"), "SELECT * FROM s");
    
    			var _list = new List<Employee>();
    			
                while (reader.Read())
                {
    				var tabl = new Employee()
    				{
    					EmployeeId = reader["id"].ToString(),
    					EmployeePib = reader["pib"].ToString(),
    					EmployeeEmail = reader["email"].ToString(),
    					EmployeePhone = reader["phone"].ToString(),
    					EmployeeMessage = reader["message"].ToString(),
    					EmployeeIp = reader["ip"].ToString(),
    					EmployeeDate = reader["send"].ToString()				
    				};
                  
                    _list.Add(tabl);
                }
    
                Conn.Cls();
    			
    			return _list;
            }


    Я бы все же посмотрел в сторону ORM типа Dapper и MVVM
    Ответ написан
    Комментировать
  • Нужны ли разработчики .Net?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Разработчики .net нужны и MS активно продвигает .net)
    Я начинал с фриланса, с выполнения простеньких проектов, параллельно читал книги по C# и выполнял задания по ним.
    Технологий много, но сейчас наиболее популярны вэб (MVC и т.п.) и микросервисы.
    Думаю неплохо было бы посмотреть на GitHub уже готовые проекты и попробовать сделать что-то похожее. Часто на собеседованиях просят создать систему просмотра, добавления, удаления и редактирования сотрудников и подразделений компании
    Ответ написан
    Комментировать
  • [C#] Как работать с MeasureString в цикле?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Можно попробовать вычислить число строк:
    private int GetNumOfLines(string multiPageString, int wrapWidth, Font fnt)
    {
            var sfFmt = new StringFormat(StringFormatFlags.LineLimit);
            using(var g = Graphics.FromImage(New Bitmap(1, 1)))
           {
                var iHeight = g.MeasureString(multiPageString, fnt, wrapWidth, sfFmt).Height;
                var iOneLineHeight = g.MeasureString("Z", fnt, wrapWidth, sfFmt).Height;
                return (int)(iHeight / iOneLineHeight)
            }
    }

    И умножить на высоту шрифта
    Ответ написан
    5 комментариев
  • Как реализовать передачу данных из одной формы в другую?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Вариантов много, хотя самый простой статический класс, но можно использовать механизм событий и подписаться на изменения на форме2;
    Ответ написан
    Комментировать
  • Как реализовать игровой сервер на c#?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    1. Посмотрите какой таймаут стоит на сервере и клиенте, т.к. скорее всего после передачи сообщения сокет закрывается по таймауту;
    2. Нужно реализовать механизм опроса сервере на предмет новых сообщений в течении определенного интервала времени, который конечно же меньше таймаута. Например, клиент через 100 мс отправляет команду ASK, а сервер в ответ Empty. Если в течении определенного времени клиент не отвечаем, то закрываем его, чтобы не расходовать память.
    3. Я бы обменивался с сервером через json или сериализуемыми побайтно структурами, а то по мере усложнения логики замучаетесь.
    Ответ написан
    Комментировать
  • Чем реально полезным можно заняться школьнику знающему программирование?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Направлений много, но думаю для начала попробовать себя на фрилансе и выполнить десяток проектов.
    Если есть время, можно попробовать сделать для школы какие-нибудь проекты, типа моделирования физических процессов в 3D для физики или интерактивную звездную карту для астрономии и т.д.
    Ответ написан
  • Как сильно влияет длина имени переменной на скорость работы программы?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Длина ни как не влияет на скорость работы, так как в итоге заменяется в IL на служебный идентификатор
    Ответ написан
    Комментировать
  • Как реализовать данную идею на C#, Примерно?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    EMGU вам в помощь!
    Ответ написан
    Комментировать
  • Как написать следующее приложение?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Думаю вам надо сначала понять, что вы хотите получить в итоге.
    Если программа будет работать на одном ПК, то возможно стоит посмотреть в сторону SQLite, при этом для установке на др. компьютер вам надо будет просто скопировать папку с проектом.
    Если подразумевается многопользовательский доступ, то тут есть несколько вариантов:
    - клиент-sql server;
    - клиент-сервер-sql server;
    Преимущества и недостатки обоих методов можно будет посмотреть в интернете.

    Далее, если вы планируете в дальнейшем развивать проект, то стоит задуматься об архитектуре и условно разделить приложение на несколько уровней:
    - Уровень работы с БД или DAL (тут нужно и использовать ORM);
    - Уровень бизнес-логики или BLL, на этом уровне уже выполняться все проверки и обеспечение правильной логики работы;
    - Уровень представления, тут уже можете отображать данные, вводить данные и т.п. с помощь WPF, ASP.NET, Winform.

    Ну если вы решите использовать трехзвенную структуру, то еще думаю стоит посмотреть WCF.

    Советую почитать книгу Применение DDD и шаблонов проектирования
    Ответ написан
  • C# Как переписать toString для свойства?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Если get возвращает примитивный тип, то что-то переопределить не получится или делать класс-обертку, но это сразу скажется на производительности, поэтому их лучше переопределять в вызывающем коде.
    Если get возвращает структуру или тип, то все проще, просто переопределяется ToString()
    вот пример:
    public class Company : IDbEntity
        {
            /// <summary>
            /// id компании
            /// </summary>
            public int Id { get; set; }
    
            /// <summary>
            /// Наименование компании
            /// </summary>
            public string Name { get; set; }
    
            /// <summary>
            /// Описание
            /// </summary>
            public string Description { get; set; }
    
            public override string ToString()
            {
                return $"{Name}";
            }
        }
    Ответ написан
    Комментировать
  • Что должна возвращать функция в catch блоке?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    В блоке Try вы помещаете потенциально небезопасный код. В блоке Catch вы обрабатываете нештатную ситуацию, но при этом необходимо понимать, что в стек может быть поврежден. Обычно в данном блоке фиксируется нештатная ситуация или исключение передается вышестоящей функции оператором throw. В блоке finality происходит очистка ресурсов, вызов finality осуществляется уже сборщиком мусора в неизвестный момент времени.
    При этом возможны вариации try-catch или try-finality
    Ответ написан
    Комментировать
  • Что лучше использовать, что бы определить различность изображений?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Тут как я вижу два подхода использовать EMGU (openCV) или реализовывать алгоритм самостоятельно, как вариант использовать корреляционную функцию или FFT, а также можно использовать нейронные сети. Если изображений много и время на их обработку критично, то использование с++ + OpenCv более предпочтительней, хотя и сложней, но производительность тут существенно выше. Ну и в качестве экзотики использовать для этого DSP или ПЛИС
    Ответ написан
    3 комментария
  • Как скрыть форму после нажатия кнопки "Открыть" в OpenFileDialog?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    if (ofd.ShowDialog() == true)
    {
        Opacity = 0f;
    }
    
    Opacity = 1.0f;
    Ответ написан
    Комментировать
  • C# — Возможно ли(как) использовать «||» в массиве?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Можно конечно так, но это не самая лучшая реализация
    public static void Main(string[] args)
     {
          string[] names = { "васе", "пете", "коле" };
                var names2 = "Позвонить ";
                var readline = Console.ReadLine();
                //поиск имени
                var word = names.FirstOrDefault(n => (names2 + n) == readline);
    
                if (!string.IsNullOrEmpty(word))
                {
                    Console.WriteLine("Вызов" + names.Aggregate((a, b) => a + ", " + b));
                }
                else
                {
                    Console.WriteLine("Ошибка");
                }
                Console.ReadLine();
     }


    Но в качестве быстрого решения сгодится
    Ответ написан
  • Как правильно использовать void и return в С#?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Вот пример, думаю он объяснит
    public class Program
        {
            public static void Main(string[] args)
            {
                //Просто вызываем функцию
                summaNumbers(100);
                Console.WriteLine();
                Console.WriteLine(summaNumbersAndReturnCount(100));
            }
            
            static void summaNumbers(int x)
            {
                for (int i = 0; i <= x; i++)
                {
                    //Условие проверяющее, что допустим дальше расчитывать смысла нет и поэтому
                    //вызываем return завершающее данную функцию и возвращающее управление Main
                    //if(condition == 0)
                    //    return;
                    
                    if (i % 3 == 0 && i % 5 == 0)
                    {
                        Console.WriteLine(i); 
                    }
                }
            }
            
            static int summaNumbersAndReturnCount(int x)
            {
                var _count = 0;
                for (int i = 0; i <= x; i++)
                {
                    //Условие проверяющее, что допустим дальше расчитывать смысла нет и поэтому
                    //вызываем return завершающее данную функцию и возвращающее управление Main
                    //if(condition == 0)
                    //    return;
                    
                    if (i % 3 == 0 && i % 5 == 0)
                    {
                        _count++;
                    }
                }
                
                return _count;
            }
        }
    Ответ написан
    Комментировать
  • Какими средствами создается среда для симуляции каких-либо процессов [C#]?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Если хотите самостоятельно реализовать:
    Структура данных список деревьев;
    Узел - какой-то базовый класс или интерфейс;
    Список операций:
    - Добавить / удалить / изменить узел;
    - Отправить/ принять сообщение (тут вполне может использоваться глобальная очередь, в которую поступают сообщения от узлов, а обработчик в зависимости от адреса отправляет сообщение адресату)
    - Поиск узла
    - Обход дерева для определения маршрута или поиска узла.

    Данные думаю лучше хранить в БД

    Если не нужно реализовывать, что можно поискать на просторах интернета компьютерное моделирование
    Ответ написан
    Комментировать
  • Возможно ли в консольной команде на c#, менять цвет символов находящихся в строке?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Вот пример
    Console.ForegroundColor = ConsoleColor.Red;
    Console.BackgroundColor = ConsoleColor.Yellow;
    Console.WriteLine("Вычисления c и s круга");
    Console.WriteLine("");
    Console.ForegroundColor = ConsoleColor.Yellow;
    Console.BackgroundColor = ConsoleColor.Black;
    Console.Write("Введите радиус > ");
    double r = Convert.ToDouble(Console.ReadLine());
    //длина окружности:
    double c = 2 * Math.PI * r;
    //площадь круга:
    double s = Math.PI * r * r;
    //округляем значения:
    c = Math.Round(c, 2);
    s = Math.Round(s, 2);
    //печатаем результаты вычислений в консольном окне:
    Console.ForegroundColor = ConsoleColor.Green;
    Ответ написан
    Комментировать