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;
}