所以我有一些非常基本的代碼,我想知道將它放在陣列中是否更好,以及是否可以在一行中編輯陣列的多個值。
我的代碼看起來像這樣,你可以猜到每個布林值都有一個 btn_****_Click 方法。我顯然可以做一個 bool[] whichClick = new bool 然后將它們全部添加,但是有沒有一種在單個命令中編輯所有 7 個 bool 的速記方法?如果我仍然堅持使用 7 行在每種方法中設定所有 7 個布林值,那么將它放在陣列中對我沒有任何好處。
private void btn_Byte_Click(object sender, EventArgs e)
{
byteClick = true;
shortClick = false;
intClick = false;
longClick = false;
floatClick = false;
douClick = false;
decClick = false;
}
public void PostProcess(decimal left, decimal right, decimal answer, string oP)
{
string outputStr = "";
// If statements for which data type was selected
if (byteClick == true)
{
try
{
byte byteLeft = Decimal.ToByte(left);
byte byteRight = Decimal.ToByte(right);
byte byteAnswer = Decimal.ToByte(answer);
outputStr = $"{byteLeft}{oP}{byteRight}{" = "}{byteAnswer}";
lbl_Output.Text = outputStr;
}
catch (OverflowException) { Error(2); Error(0); }
}
}
uj5u.com熱心網友回復:
你可以這樣寫
byteClick = true;
shortClick = intClick = longClick = floatClick = douClick = decClick = false;
uj5u.com熱心網友回復:
這可能是一個很好的用例Enum。
Enum像這樣定義一個:
public Enum ClickType
{
None,
Byte,
Short,
Int,
Long,
Float,
Double,
Decimal
}
向包含事件處理程式的類添加一個欄位:
private ClickType clickType;
然后,在事件處理程式中,設定此欄位:
private void btn_Byte_Click(object sender, EventArgs e)
{
this.clickType = ClickType.Byte;
}
在postProcess()方法中,執行:
public void PostProcess(decimal left, decimal right, decimal answer, string oP)
{
...
// Or replace this with a switch-case
if (this.clickType == ClickType.Byte)
{
...
}
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/364114.html
