我可以在 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 返回多个值吗?

spring mvc requestparam value可以写多个值吗

我可以从同一列中选择多个值吗

有啥办法可以拆分数组中的哈希值吗?

将char数组转换为int数组c#

在c#中. 删除数组中的一个数,