Есть ли способ упростить эту функцию с помощью лямбды? - PullRequest
0 голосов
/ 30 октября 2019

Так что я постараюсь быть описательным, насколько это возможно. У меня есть приложение winforms, которое группирует машины по меткам. У меня есть рабочий код, но мне было интересно, есть ли какой-нибудь другой лучший или более читаемый код, который мог бы делать то же самое с меньшим количеством кода?

Так что в основном, когда счет достигает 23, я пытаюсь сбросить его до0 основано на столбце с именем count, который поразрядно равен 1 или 0, когда он равен 1, метки будут отображать только данные со счетчиком 0.

        if (lbl1.Text == "23")
        {
            string sql = "update tbl_mch_ability set count = 1 where mchNo = 'Spot 1' ";
            con.OpenConnection();
            con.ExecuteQuery(sql);
        }
        else if (lbl2.Text == "23")
        {
            string sql = "update tbl_mch_ability set count = 1 where mchNo = 'Spot 2' ";
            con.OpenConnection();
            con.ExecuteQuery(sql);
        }

Это работает нормально, но у меня больше 10 фунтов, и яИнтересно, есть ли более простой способ сделать это?

1 Ответ

0 голосов
/ 30 октября 2019

Вы можете использовать этот рефакторинг с лямбдой:

Action<Label, string, string> update = (label, trigger, mchNo) =>
{
  if ( label.Text == trigger )
  {
    string sql = $"update tbl_mch_ability set count = 1 where mchNo = '{mchNo}' ";
    con.OpenConnection();
    con.ExecuteQuery(sql);
  }
};

update(lbl1, "23", "Spot 1");
update(lbl2, "23", "Spot 2");

Вы должны использовать sqlparameters, чтобы предотвратить инъекцию, как хорошую обычную рефлекторную практику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...