我搜索了网站和谷歌,但无法找到我想要的东西.我认为这很简单,但我对C#还不熟悉,所以我遇到了一些麻烦.
基本上,我有一个if语句来测试我所拥有的单选按钮的选择,这是通过单击按钮触发的.默认情况下,我没有任何选择,如果忘记选择一个MessageBox,我的程序将通知我.基本上,在做出选择之前,你不能做任何事情.
到目前为止,我只有3个单选按钮,但今天我又增加了一个,还有一些与新单元相关的代码,包括一个新功能.
我还在试图弄清楚什么是最有效的方法来测试radioButton.Check现在,是临时变量,还是我的if语句?
if (pRKButton.Checked != true ^ hexButton.Checked != true ^ binaryButton.Checked != true)
{
MessageBox.Show("Choose a method of encryption.");
return null;
}
else....//More Goes Here
Run Code Online (Sandbox Code Playgroud)
我的主要问题是:为什么当我在if语句中添加一个参数时,使用exclusive或者像这样;
if (pRKButton.Checked != true ^ hexButton.Checked != true ^ binaryButton.Checked != true ^ md5Button.Checked != true)
Run Code Online (Sandbox Code Playgroud)
该程序没有注册我点击任何单选按钮.
此时我正在考虑制作一个列表框来保存所有值并选择选项,因为列表会增长.但我对于无法使用独占或超过3个参数的原因感到非常好奇.在任何程度上,我都不是数学家,但我更愿意学到更多东西.
所以,首先,我看过这样的帖子:如何在不使用if语句的情况下找到哪个条件为真
这不是我需要的,虽然这个想法是相关的,因为我希望它是更易读的代码.
我认为Switch是最好的选择,但让我解释一下.
我有这样的声明:
if (input == string.Empty || typeComboBox.Text == null)
{
MessageBox.Show("Nothing to encrypt!", "Nothing Selected!");
return null;
}
Run Code Online (Sandbox Code Playgroud)
因此,这里的想法是,我曾经有过这种说法分成两个"IF"语句,这是不是一个大问题,但对于可读性起见,我要去减少了代码的努力,我想陈述成一个组合.
如果输入为空,我希望MessageBox.Show中的第一个参数出现,但不是第二个.
如果typeComboBox.Text为null,我希望第二个选项出现,但不是第一个.
如果它们都是真实的陈述,我希望两者都出现.
现在,我的目标是在不使用多个测试或方法的情况下完成这些操作.基本上,我的意思是:如果我能找到哪个条件是真的并且在同一个语句中得到结果数据,那将是理想的.
我认为交换机是一种选择,我还不太了解它们,但我认为这需要我根据这个测试的结果做出决策方法,并将结果发送给交换机; 这不是理想的,因为我可以简单地使用两个if语句和更少的代码.
有没有办法在一个声明中这样做?这个特定的程序没有必要,但我想知道未来.
谢谢!