簡體   English   中英

如何使用 xor 使我的代碼更短

[英]How can I using xor to make my code shorter

我在 windows 表單應用程序粗體、斜體和下划線中有三個復選框

當我更改檢查時,我希望 label 中的文本更改為其中之一,如果我檢查其中兩個,我希望它們一起活動,我使用 if...else 執行長代碼,但我想要使用 xor 的更短代碼 ^ I聽說比較短但是不知道怎么弄

我會使用 3 個 if:

aLabel.Text = "";
if(xCheckBox.Checked)
  aLabel.Text += "x, ";
if(yCheckBox.Checked)
  aLabel.Text += "y, ":
if(zCheckBox.Checked)
  aLabel.Text += "z, ";
aLabel.Text = aLabel.Text.TrimEnd(' ', ',');

因為它(或它的一些變體)很容易理解..

您可以將所需的文本放在復選框標簽中,然后執行;

aLabel.Text = string.Join(", ", this.Controls.OfType<CheckBox>()
.Where(cb => cb.Checked)
.Select(cb => cb.Tag));

如果您在表單上有許多復選框,並且希望僅將其應用於少數幾個,則可以將它們命名為您可以在 Where 中檢查的某種模式,或者將它們放在面板中並調用panel.Controls而不是this

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM