• Какие есть книги / виде-уроки по 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 разный размер ячейки памяти, они не смогут правильно работать в одном адресном пространстве.
    Ответ написан
    Комментировать
  • Связь многие ко многим в MS SQL для чего?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Простейший пример - сотрудники и группы. Сотрудник может входить в несколько групп, в группу может входить несколько сотрудников.
    Ответ написан
    Комментировать
  • Связь многие ко многим в MS SQL для чего?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега SQL
    Седой и строгий
    Пример из реальной жизни: Есть таблица товаров интернет-магазина и есть таблица акций, действующих на товары. Любой товар может участвовать в множестве акций и любая акция может включать множество товаров. И нет никакого способа хранить информацию об этих связях, кроме использования дополнительной таблицы.
    Ответ написан
    Комментировать
  • Разница между get и return(Глупый вопрос)?

    @JihadTV
    То ли я от шарпа отстал, то ли второе вообще непонятно что.
    Первое -свойство , имеющее только геттер.
    Ответ написан
    Комментировать
  • C# в качестве backend под linux, стоит ли?

    @FoxInSox
    Стоит ли сейчас C# использовать на сервере?

    Конечно.
    Ответ написан
    Комментировать
  • Чем отличается Visual C# от C#?

    Daniro_San
    @Daniro_San
    Программист
    Язык один - C#
    Visual C# - это компонент в среде Visual Studio, отвечающий за его поддержку.
    Ответ написан
    Комментировать
  • Где почитать информация по провайдерам данных?

    ODP.NET это надстройка над ADO.NET?

    Ну у вас и каша в голове, неудивительно, что вы ничего не можете найти.

    ADO.NET - это прежде всего набор интерфейсов, обеспечивающих написание кода, работающего с реляционными данными таким образом, что он минимально зависит (или не зависит вообще) от конкретной используемой СУБД. ADO.NET это далеко не первая попытка унифицировать интерфейс доступа к базам данных (хотя бы к реляционным), многие крупные вендоры это делали, тот же Борланд.

    С момента появления дотнета как платформы ADO.NET был и остаётся основным способом доступа к реляционным БД из дотнет-приложений. В большинстве случаев нет причин НЕ пользоваться им. Стоит отметить, что хоть сейчас MS советует использовать ORM (с тех пор, как повзрослел Entity Framework) для доступа к данным, ADO.NET никуда не девался, т.к. все известные мне ORM-ми работают также через эти интерфейсы.

    Провайдеров данных существует множество, и существование каждого из провайдеров определяется существованием конкретной СУБД. ODP.NET это не надстройка над ADO.NET, это реализация интерфейсов ADO.NET, способная взаимодействовать с Ораклом. Аналогичные провайдеры существуют и для других популярных СУБД, включая PostgreSQL, DB2, MySQL и даже SQLite. По сути доступность реляционной СУБД на дотнете определяется наличием работоспособного ADO.NET-провайдера.

    Разумеется, конкретный провайдер может добавлять какой-то специфичный функционал, но при этом он должен реализовать все необходимые интерфейсы. Фишка ADO.NET в том, что реально написать такое приложение (разумеется, если пользоваться только стандартными SQL конструкциями), которое ВООБЩЕ не будет зависеть от конкретной СУБД вплоть до того, что нужного провайдера можно будет указывать в конфиг-файле.

    Большинство интерфейсов и классов ADO.NET находятся в пространстве имён System.Data. Условно они делятся на собственно интерфейсы для доступа к БД (важнейшие из них: IDbConnection, IDbCommand, IDataReader) и классы-хелперы, в частности набор классов для организации простейшей in-memory базы данных внутри вашего приложения, которая будет служить кэшем для данных, взятых из основной БД (важнейшие классы: DataSet, DataTable).

    Слышал что есть управляемые и неуправляемые провайдеры данных, в чем отличие?

    Я думаю, что речь идёт об использовании или неиспользовании неуправляемого кода в реализации провайдера данных.

    Почитать об этом можно в любой нормальной книжке по дотнету. Если остались вопросы, пишите в комментарии.
    Ответ написан
    3 комментария
  • Нужно ли вкладываться в IDE для C#?

    kykyryky
    @kykyryky
    >>для комфортной работы
    Хочется отметить, что для комфортной работы студии + решарпера нужен так же довольно мощный комп. Лично меня тормознутость этой парочки перестала раздражать только на i7/16 Гб ram/ssd.
    Ответ написан
    Комментировать