Ответы пользователя по тегу Visual C#
  • Как сравнить 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 комментария
  • Чем отличается Visual C# от C#?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Под C# обычно следует понимать Visual C#, точнее Microsoft Visual C#.

    Microsoft Visual C# - реализация языка C# компанией Microsoft.

    Наверное выглядит странно, учитывая что язык создан в Microsoft для Microsoft .NET Framework, но на данный момент есть две спецификации C#: ECMA-334, ISO/IEC 23270:2006 (в чем разница, не имею представления).
    Microsoft штампует новые версии C# со страшной скоростью, и как следствие выпускает новые спецификации :-)

    Из-за разных реализация C#, стандартов, юридических проблем в языке появляются искажения и не стыковки. Например, при программировании под Mono есть мелкие особенности, которые следует учитывать. А в целом, C# - он один.
    Ответ написан