private void Card_Click(object sender, EventArgs e) { switch (GameMode) { case Mode.Play: var button = (Button)sender; if (button.Tag is Card card) { card.Selected = !card.Selected; _game.SelectCard(card); button.ShowCardOnButton(card); } else { throw new Exception("Button doesn't have a card."); } break; case Mode.Edit: new CardDetails((Button)sender, _game); break; } }