C# 减少VisualStudio中重复任务集的冗余

C# 减少VisualStudio中重复任务集的冗余,c#,visual-studio,C#,Visual Studio,我是一名初学者,我想知道是否有任何方法可以减少以下代码中的冗余: if(checkBoxA.Checked == true) { comboBoxA.Enabled = true; textBoxA.Enabled = true; } string stringA = comboBoxA.Text; float floatA = float.parse(textBoxA.Text); if(checkBoxB.Checked == true) { com

我是一名初学者,我想知道是否有任何方法可以减少以下代码中的冗余:

if(checkBoxA.Checked == true) 
{  
   comboBoxA.Enabled = true; 
   textBoxA.Enabled = true; 
} 

string stringA = comboBoxA.Text; 
float floatA = float.parse(textBoxA.Text);

if(checkBoxB.Checked == true) 
{  
   comboBoxB.Enabled = true; 
   textBoxB.Enabled = true; 
} 

string stringB = comboBoxB.Text; 
float floatB = float.parse(textBoxB.Text); 

任何帮助都将不胜感激。谢谢大家!

所有的状态都不同,目的也不同,所以大多数情况下你无法避免。

好吧,你可以这样做,把它包装在一个函数中。但是,对于设置值,您可能需要一个容器或元组

可以将命名调整为有意义的名称

以下是容器示例:

public class Container
{
    public string StringValue {get;set;}
    public float FloatValue {get;set;}
}
把它叫做:

var resultA = HandleState(checkBoxA, comboBoxA, textBoxA);
var resultB = HandleState(checkBoxB, comboBoxB, textBoxB);

如果您使用的是Winforms,则可以将控件分组在一起,并对整个组执行操作。您可以使用2个容器(面板),将comboBoxA和textBoxA添加到第一个容器中,将comboBoxB和textBoxB添加到第二个容器中。选中复选框后,您可以使用下面的代码启用相应容器中的所有元素(我已将面板用作容器)


您可以使用签名提取方法,例如(字符串、浮点)GetInformation(复选框、组合框、文本框)
var resultA = HandleState(checkBoxA, comboBoxA, textBoxA);
var resultB = HandleState(checkBoxB, comboBoxB, textBoxB);
        foreach (var item in panel1.Controls)
        {
            (item as Control).Enabled = true;
        }