Задать вопрос
  • StackOverflowException в свойствах?

    Android97
    @Android97
    Бэкенд и немного фронтенд разработчик
    Создайте private поле, назовите его допустим String[] _savesName.
    Далее перепишите свойство:
    public String[] SavesName
            {
                get => _savesName;
                set
                {
                    _savesName = value;
                    cbSaves.Items.Clear();
                    if (value != null) cbSaves.Items.AddRange(value);
                }
            }
    Ответ написан
    Комментировать
  • Есть аналог visual studio без авторизации?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    Так полно же вариантов
    SharpDevelop для C#
    И Eclipse, NetBeans для всего остального
    Ответ написан
    Комментировать
  • Объявление пространств имен в c#?

    Ведь c# - это компилируемый язык а не интерпретируемый, а значит код не читается строчка за строчкой а строится синтаксическое дерево. И поэтому мне интересно не все ли равно где объявлять пространства имен?

    Думаю так сделано чтобы открыв файл, можно было сразу понять, какие пространства имён используются. Потому что выискивать все using'и по всему файлу - такое себе развлечение, даже если бы язык это позволял, за такое нужно было бы бить по рукам.
    Ответ написан
    Комментировать
  • Как сделать "глубокий" массив с разными типами данных в C#?

    tomnolane
    @tomnolane
    профессиональный разработчик
    в вашем случае, (лично я) использовал бы примерно так:
    Dictionary<string, string[]> wordDictionary = new Dictionary<string, string[]>();
    wordDictionary.Add("YANDEX", new string[] {'yandex1','yandex2'});
    wordDictionary.Add("GOOGLE", new string[] {'google1','google2'});


    или так

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication5
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<UserInfo> my_list = new List<UserInfo>();
    			my_list.Add(new UserInfo { name = "Вася", age = 19, male = true});
    			my_list.Add(new UserInfo { name = "Маша", age = 23, male = false});
    
                Dictionary<string, UserInfo> dic = new Dictionary<string, UserInfo>();
                dic.Add("YAndeX", my_list[0]);
                dic.Add("GooGle", my_list[1]);
    
                foreach (var temp in dic)
                {
                    Console.WriteLine("Key: " + temp.Key + " Value: Age" + temp.Value.age + " Name: " + temp.Value.name + " is male: " + temp.Value.male);
                }
                Console.ReadLine();
            }
        }
    
        class UserInfo
        {
            public string name { get; set; }
            public int age { get; set; }
            public bool male { get; set; }
        }
    }


    --------------------------------------------------------

    надеюсь вам поможет:
    1) массивы для знакомства
    2) кортеж
    3) класс Dictionary< TKey, TValue >
    using System;
    using System.Collections.Generic;
    
    namespace ConsoleApplication1
    {
        class UserInfo
        {
            // Метод, реализующий словарь
            public static Dictionary<int, string> MyDic(int i)
            {
                Dictionary<int, string> dic = new Dictionary<int,string>();
                Console.WriteLine("Введите имя сотрудника: \n");
                string s;
                for (int j = 0; j < i; j++)
                {
                    Console.Write("Name{0} --> ",j);
                    s = Console.ReadLine();
                    dic.Add(j, s);
                    Console.Clear();
                }
                return dic;
            }
        }
    
        class Program
        {
            static void Main()
            {
                Console.Write("Сколько сотрудников добавить? ");
                try
                {
                    int i = int.Parse(Console.ReadLine());
                    Dictionary<int, string> dic = UserInfo.MyDic(i);
    
                    // Получить коллекцию ключей
                    ICollection<int> keys = dic.Keys;
    
                    Console.WriteLine("База данных содержит: ");
                    foreach (int j in keys)
                        Console.WriteLine("ID -> {0}  Name -> {1}",j,dic[j]);
                }
                catch (FormatException)
                {
                    Console.WriteLine("Неверный ввод");
                }
    
                Console.ReadLine();
            }
        }
    }
    Ответ написан
    Комментировать
  • Как создать команды в ASP.NET CORE?

    petermzg
    @petermzg
    Самый лучший программист
    Комментировать
  • Какие плюсы и минусы у ЯП C#?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Да откуда вы только лезете? Да, у всего есть плюсы и минусы. Если пишут что-то положительное, значит наверняка так оно и есть. Если пишут что-то негативное, вполне вероятно это имеет место быть.

    Да откуда всё ползёте и ползёте? Да, это только инструмент, но если инструмент называется языком программирования общего назначения, то соответственно сравнение с узкоспециализированными штангенциркулями и газовыми ключами как минимум некорректно. Это не verilog или brainfuck. Это C#.

    C# имеет статическую типизацию. Очень приятную и удобную, одну из лучших, ИМХО. Лучше только haskell, но вопрос не об этом. Типизация с метаинформацией и отменной рефлексией, можно писать программу пока пишешь программу, xzibit одобряет. У него потрясающая экосистема, лучшего я пока не встречал, говорят у руби с гемами лучше, но как-то не уверен. Шикарнейшая реализация пространства имён, а также возможность размазать класс по файлам - бесценно, для остального есть Core i7. Что ещё нужно? Производительность? Мимо. Свободность? Промазали. Портативность? Как бы не так. Логичность, читай отсутствие костылей? Эх... Если бы. Лаконичность? Чёрт, не помешало бы!

    Короче. Это потрясающий инструмент со своими недостатками. Да, он лаконичнее, чем C++, но python и ruby поставят выскочку на место, да даже F# поинтереснее будет. Да, он побыстрее python, но даже Java иногда начинает опережать, что уж говорить про С++. В общем и целом, часто выбор обусловлен не собственным желанием, а окружающими условиями, но чисто с эстетической точки зрения C# очень приятный и удобный, есть классные generics, и удобные lambdas, и потрясные extensions, так тут ещё и dynamic для всяких наркоманов привезли, а если очень хочется, то можно и в игры или даже движки.
    Ответ написан
    Комментировать
  • Microsoft Visual Studio 2017 - Как исправить ошибку компиляции?

    В вашем случае ошибка CS8078 означает, что вся ваша программа составляет одно гигантское выражение из множества if-elseif. У вас есть два варианта решения:
    • Удалить весь написанный вами код, и сесть изучать программирование заново
    • Выбрать другой язык программирования, например, BrainFuck
    Ответ написан
    1 комментарий
  • Как правильно хранить node.js проект в репозитории?

    Fragster
    @Fragster
    помогло? отметь решением!
    у меня /node_modules/ в .gitignore, чего и Вам желаю. Наверняка в svn тоже есть такие настройки
    Ответ написан
    Комментировать
  • Значение версий в C#?

    @kvasek
    Здравствуйте, вы можете смело изучать C# 5.0. Изменений много и это в основном синтаксический сахар вот например сами посмотрите What's New in C# 6 и What's new in C# 7 или на рус. Что нового в C# 6.0? и Что нового появилось в C# 7... это все можно изучить за вечер, и ради это-го покупать книгу для C# 7, ну совсем не стоит. А если вы боитесь все что вы выучите для C# 5.0 будет неактуально, то тут не бойтесь, из C# не удаляют удаляю старые фичи.
    Ответ написан
    Комментировать
  • Какие есть книги / виде-уроки по C#?

    @serber
    Сто раз уже задавали подобный вопрос.
    bfy.tw/9jPc
    Ответ написан
    Комментировать
  • Как реализовать автоматически запускаемую программу сразу после окончания загрузки Windows 10?

    abyrkov
    @abyrkov
    JavaScripter
    Для этого не нужен C#. Нужен реестр.
    HCU(HKLM)\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    Добавьте что-нибудь вроде "YOURPROGRAM" -> "PATH_TO_YOUR_PROGRAM.exe"
    Ответ написан
    Комментировать
  • Как реализовать автоматически запускаемую программу сразу после окончания загрузки Windows 10?

    lxsmkv
    @lxsmkv
    Test automation engineer
    может встроеный планировщик задач Taskschd.msc подойдет?
    Ответ написан
    Комментировать
  • Удалить элементы из массива по значению C#?

    alsopub
    @alsopub
    Если кратко, то алгоритм тут реализован такой:
    ввести массив
    ввести значение
    пройтись по массиву в поисказ значения
    если значение найдено то удалить элемент по индексу
    продолжить цикл (ключевой момент i--, чтобы ничего не пропустить)
    вывести массив
    Данный алгоритм неоптимальный, можно сделать эффективнее.
    Ответ написан
    2 комментария
  • [dotnet core] Как на Linux для c# проекта устанавливать зависимости?

    @MIsternik Автор вопроса
    Все делается просто.
    Надо в project.json добавить зависимость и запустить dotnet restore. Он подтянет то чего не хватает.
    docs.microsoft.com
    Ответ написан
    Комментировать
  • Анонимные типы в c# и их особенности?

    @none7
    Этот автор только сильно запутал Вас. Код:
    var instance = new {Name = "Alex", Age = 27}
    Эквивалентен такому коду:
    class Anonymous0001 // ссылочный тип
    {
        public string Name { get; private set; } // из других классов выглядит как read-only свойство
        public int Age { get; private set; }
        public Anonymous0001(string name, int age)
        {
            Name = name;
            Age = age;
        }
    }
    
    class Program
    {
        static void Main()
        {
            var instance = new Anonymous0001("Alex", 27);
        }
    }

    Если будет другая строка new { ... }, то компилятор сгенерирует ещё один класс. Всю остальную ересь просто забудьте. В анонимный тип нельзя добавить какую либо функциональность и от них нет никакого толку. Созданы лишь как часть синтаксического сахара, для упрощения выборки нескольких значений из linq запросов. Вроде такого:
    var a = new System.Collections.Generic.Dictionary<string, int>() { { "vasya", 0 }, { "kolya", 0 }, { "alex", 1} };
    
    int i = 0;
    var result = from item in a where item.Value == 0
        select new { Index = i++, Name = item.Key, Id = item.Value }; // создание объекта анонимного типа
    
    foreach(var res in result) {
        bool first = true;
        foreach (var prop in res.GetType().GetProperties()) {
            if (first) first = false;
            else Console.Write(", ");
            Console.Write("{0} = {1}", prop.Name, prop.GetValue(res, null));
        }
        Console.WriteLine();
    }
    Ответ написан
    Комментировать
  • Как создать веб сервис сброса пароля в домене для пользователя?

    Black_beard_ast
    @Black_beard_ast
    Sysadmin/Ops engineer.
    Пользователи часто забывают свои пароли и напрягают первую линию тех. поддержки

    Лучше бороться с корнем) Стимулируйте пользователей серьезнее относится к этому делу, бумажечку официальную(политику безопасности) с подписями об ознакомлении сотрудников. Усложните процедуру сброса пароля. Например - сотрудник пишет заявку, подписанную руководителем своего отдела, IT-отдела и т.д.

    Или как вариант - смарт-карты.
    Ответ написан
    Комментировать
  • Как создать веб сервис сброса пароля в домене для пользователя?

    не стоит делать брешь в системе, потому как ИНН может банально лежать в паспорте, который лежит на столе. в фин.отделе и еще куче мест.
    пусть лучше тревожат саппорт
    Ответ написан
    7 комментариев
  • Как сравнить button==button из массива в c#?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Кнопки сравнить просто так не получится, это разные экземпляры и они будут разными, даже если имеют одинаковый набор значений свойств.

    Можно сравнить, например, Text.

    Для этого достаточно сделать переменную на уровне класса, в которую помещать текст первой нажатой кнопки (или ссылку на саму кнопку). Когда будет нажата следующая кнопка, сравнивать её текст с сохраненным значением.

    private Button FirstButton = null;
    
    void S_MouseClick(object sender, MouseEventArgs e)
    {
      var button = (sender as Button);
    
      if (this.FirstButton == null)
      {
        // это первая кнопка в текущей сессии,
        // запоминаем ссылку на кнопку
        this.FirstButton = button;
      }
      else
      {
        // это вторая кнопка в текущей сессии
        // сравниваем текст с первой
        if (this.FirstButton.Text == button.Text)
        {
          Console.WriteLine("Текст совпадает!");
          // меняем свойства кнопок
          this.FirstButton.Text = button.Text = "--";
          this.FirstButton.Enabled = button.Enabled = false;
        }
        else
        {
          Console.WriteLine("Текст не совпадает.");
        }
        // сбрасываем выбор, запуская тем самым новую сессию
        this.FirstButton = null;
      }
    }

    Если понадобится сравнивать более двух кнопок, то придется делать коллекцию.

    Вместо Text можно сравнивать по какому-нибудь другому признаку. У элементов есть свойство Tag, которое можно использовать для хранения любых дополнительных данных.

    Если все будет совсем сложно, то можно расширить Button дополнительными свойствами путем наследования. В таком случае можно будет переопределить Equals и с операторами поиграть.
    Ответ написан
    2 комментария
  • Использование шаблонов в WPF?

    andrewpianykh
    @andrewpianykh
    Добавьте во внутрь Border
    <ScrollViewer x:Name="PART_ContentHost" />
    Ответ написан
    Комментировать
  • Может ли два exe-файла x86 и x64 использовать общие dll?

    xpert13
    @xpert13
    Full Stack Developer
    Не можете, разрядность исполняемого файла и используемых ею библиотек должны совпадать. Исполняемый файл делит с библиотекой своё адресное пространство, а у x86 и x64 разный размер ячейки памяти, они не смогут правильно работать в одном адресном пространстве.
    Ответ написан
    Комментировать