我可以在 C# 中的一行中编辑多个数组值吗
Posted
技术标签:
【中文标题】我可以在 C# 中的一行中编辑多个数组值吗【英文标题】:Can I edit multiple array values in one line in C# 【发布时间】:2022-01-02 07:07:00 【问题描述】:所以我有一些非常基本的代码,我想知道将它放在一个数组中是否更好,以及是否可以在一行中编辑一个数组的多个值。
我的代码看起来像这样,你可以猜到每个布尔值都有一个 btn_****_Click 方法。我显然可以做一个 bool[] whichClick = new bool 然后将它们全部添加,但是有没有一种速记方法可以在一个命令中编辑所有 7 个布尔值?如果我仍然坚持在每种方法中使用 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 = $"byteLeftoPbyteRight" = "byteAnswer";
lbl_Output.Text = outputStr;
catch (OverflowException) Error(2); Error(0);
【问题讨论】:
当您使用这些布尔字段作为标志时,您最好使用 Enum 来代替...为了节省行,Rans 答案可能会有所帮助,或者您创建一个传递的方法... - 一个枚举还是字符串? 谢谢。我想我现在会用他的,然后再看看是否有人想出更短的东西。我显然还在学习 C#,所以我对 Enum 不太满意。我的代码目前按原样运行,我不想用我不知道如何正确使用的东西来破坏它。 【参考方案1】:这对于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)
...
...
【讨论】:
【参考方案2】:你可以这样写
byteClick = true;
shortClick = intClick = longClick = floatClick = douClick = decClick = false;
【讨论】:
@KyleC 这个答案有帮助吗?以上是关于我可以在 C# 中的一行中编辑多个数组值吗的主要内容,如果未能解决你的问题,请参考以下文章
您可以从 Redshift 中的 python UDF 返回多个值吗?