C#动态If分段
在C中构建WPF应用程序# 我有5个复选框,当选择一个或多个复选框时,我希望it语句的参数动态更改。 例如,我将周一、周二、周三、周四和周五作为复选框。 如果用户选择Mon、Wed和Fri,那么我希望If语句的参数改变以反映这一点。 我不想做很多不同的if语句。 这是我写的一个示例,但是if语句显然是错误的C#动态If分段,c#,wpf,visual-studio,C#,Wpf,Visual Studio,在C中构建WPF应用程序# 我有5个复选框,当选择一个或多个复选框时,我希望it语句的参数动态更改。 例如,我将周一、周二、周三、周四和周五作为复选框。 如果用户选择Mon、Wed和Fri,那么我希望If语句的参数改变以反映这一点。 我不想做很多不同的if语句。 这是我写的一个示例,但是if语句显然是错误的 string passArg = ""; if(check_mon.IsChecked == true) { passArg = "
string passArg = "";
if(check_mon.IsChecked == true)
{
passArg = "passArg == \"Mon\"";
}
if(passArg)
{
MessageBox.Show("RAN");
}
抱歉,如果这是一个愚蠢的问题没有您想要的那么简单。您可以动态地生成代码,但在这种情况下,这是多余的。您所需要的只是:
bool isChecked = false;
if(check_mon.IsChecked && passArg == "Mon")
{
isChecked = true;
}
...
if(isChecked)
{
MessageBox.Show("RAN");
}
我不想做很多不同的if语句
您可以将复选框放入循环中,设置
标记
或其他一些属性,并将其与pasArg
进行比较,但我倾向于使用最简单的解决方案,首先有效,然后专注于使其更好。您可能会发现,当7if
语句可以正常工作时,您会花更多的时间尝试想出一个聪明的解决方案(以后可能无法理解)。您可以动态地生成代码,但在这种情况下,这是多余的。您所需要的只是:
bool isChecked = false;
if(check_mon.IsChecked && passArg == "Mon")
{
isChecked = true;
}
...
if(isChecked)
{
MessageBox.Show("RAN");
}
我不想做很多不同的if语句
您可以将复选框放入循环中,设置
标记
或其他一些属性,并将其与pasArg
进行比较,但我倾向于使用最简单的解决方案,首先有效,然后专注于使其更好。当7if
语句可以正常工作时,您可能会发现您花费了更多的时间试图想出一个聪明的解决方案(以后可能无法理解)。您可以在列表中检查值:
List<string> checked = new List<string>()
if (check_mon.IsChecked)
{
checked.Add("Mon");
}
if (checked.Contains(passArg))
{
MessageBox.Show("RAN");
}
List checked=新列表()
如果(检查是否已检查)
{
选中。添加(“周一”);
}
如果(选中。包含(passArg))
{
MessageBox.Show(“RAN”);
}
您可以检查列表中的值:
List<string> checked = new List<string>()
if (check_mon.IsChecked)
{
checked.Add("Mon");
}
if (checked.Contains(passArg))
{
MessageBox.Show("RAN");
}
List checked=新列表()
如果(检查是否已检查)
{
选中。添加(“周一”);
}
如果(选中。包含(passArg))
{
MessageBox.Show(“RAN”);
}
当复选框被选中时,您可以触发事件。或未选中时,您可以使用此方法设置或取消设置您的内容。
例如,在xaml表单中:
<CheckBox Checked="Checked" Unchecked="UnChecked"/>
当复选框被选中时,您可以触发一个事件,并且在这个方法中您可以设置或取消设置您的内容。
例如,在xaml表单中:
<CheckBox Checked="Checked" Unchecked="UnChecked"/>
是否需要switch语句?如果语句足够,则只需5个。您可以使用+=运算符构建字符串。像passArg+=“Thu”
和passArg+=“Fri”
etc@M.kazemAkhgary如果不选中,您将如何进行减法?您不能只使用-=
“未连接”字符串…@Tinwor您不能为现有类重载运算符。你不能从字符串中派生,因为它是密封的。好吧,我需要睡觉了。谢谢你的更正。你想要一个switch语句吗?如果语句足够的话,只需要5个。您可以使用+=运算符构建字符串。像passArg+=“Thu”
和passArg+=“Fri”
etc@M.kazemAkhgary如果不选中,您将如何进行减法?您不能只使用-=
“未连接”字符串…@Tinwor您不能为现有类重载运算符。你不能从字符串中派生,因为它是密封的。好吧,我需要睡觉了。谢谢你的纠正,但我有5天不同的时间。用户可以选择任意天数组合。这需要我有许多不同的if语句来预测每一个combo@DhavalDesai您的示例仅显示了passArg中的一天。如果您需要与任何天数组合进行比较,则显示在这种情况下,passArg将是什么。在任何情况下,你都不必在单独的if
语句中检查“每一个组合”。但我有5个不同的日子。用户可以选择任意天数组合。这需要我有许多不同的if语句来预测每一个combo@DhavalDesai您的示例仅显示了passArg中的一天。如果您需要与任何天数组合进行比较,则显示在这种情况下,passArg将是什么。在任何情况下,您都不必在单独的if
语句中检查“每个组合”。