我目前正在检查组合框和数字提示是否为空但我正在使用If语句。
你能告诉我是否还有其他更快捷的方式吗?
这是当前代码
private void button1_Click(object sender, EventArgs e)
{
if(comboBox1.SelectedItem != null)
{
if(comboBox2.SelectedItem != null)
{
if(numericUpDown1.Value != 0)
{
if(numericUpDown2.Value != 0)
{
if(numericUpDown3.Value != 0)
{
if(numericUpDown4.Value != 0)
{
string domacin = "" + comboBox1.GetItemText(comboBox1.SelectedItem);
int D_kosevaPrvoPoluvreme = (int)numericUpDown1.Value;
int D_kosevaDrugoPoluvreme = (int)numericUpDown3.Value;
int D_ukupnoKoseva = D_kosevaDrugoPoluvreme + D_kosevaPrvoPoluvreme;
int D_primljenihKosevaPrvoPoluvreme = (int)numericUpDown2.Value;
int D_primljenihKosevaDrugoPoluvreme = (int)numericUpDown4.Value;
int D_ukupnoPrimljenihKoseva = D_primljenihKosevaDrugoPoluvreme + D_primljenihKosevaPrvoPoluvreme;
string gost = "" + comboBox2.GetItemText(comboBox2.SelectedItem);
int G_kosevaPrvoPoluvreme = (int)numericUpDown2.Value;
int G_kosevaDrugoPoluvreme = (int)numericUpDown4.Value;
int G_ukupnoKoseva = G_kosevaDrugoPoluvreme + G_kosevaPrvoPoluvreme;
int G_primljenihKosevaPrvoPoluvreme = (int)numericUpDown1.Value;
int G_primljenihKosevaDrugoPoluvreme = (int)numericUpDown3.Value;
int G_ukupnoPrimljenihKoseva = G_primljenihKosevaDrugoPoluvreme + G_primljenihKosevaPrvoPoluvreme;
int rezultat;
Functions.odrediPobednika(out rezultat, D_ukupnoKoseva, G_ukupnoKoseva);
//SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\arist\Documents\VisualStudio2015\Projects\NBA\NBA\NBA.mdf;Integrated Security=True");
//SqlCommand cmd = new SqlCommand("", con);
}
}
}
}
}
}
}
答案 0 :(得分:3)
我会使用以下故障快速验证方法和有意义的消息:
private void button1_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedItem == null)
{
MessageBox.Show("Meaningful message, user should know what he has done wrong", "Invalid xyz");
return;
}
else if (comboBox2.SelectedItem == null)
{
MessageBox.Show("Meaningful message, user should know what he has done wrong", "Invalid xyz");
return;
}
else if (numericUpDown1.Value == 0)
{
MessageBox.Show("Meaningful message, user should know what he has done wrong", "Invalid xyz");
return;
}
else if (numericUpDown2.Value == 0)
{
MessageBox.Show("Meaningful message, user should know what he has done wrong", "Invalid xyz");
return;
}
else if (numericUpDown3.Value == 0)
{
MessageBox.Show("Meaningful message, user should know what he has done wrong", "Invalid xyz");
return;
}
// insert code
}
它既不短也不高效,但它易于阅读,调试和最重要:用户知道出了什么问题。您还应该使用有意义的控制名称。
当然你也可以使用一个if
并使用&&
连接所有条件,但出于上述原因,我更喜欢我的第一种方法。
bool valid = comboBox1.SelectedItem != null
&& comboBox2.SelectedItem != null
&& numericUpDown1.Value != 0
&& numericUpDown2.Value != 0
&& numericUpDown3.Value != 0
&& numericUpDown4.Value != 0;
if(valid){
//Code
}
答案 1 :(得分:1)
首先想到的是使用一个if语句
<audio autoplay preload="auto" controls="" class="sppaudioplayer" id="spp-audio-player">
<source src="http://www.blogtalkradio.com/girlsinheels/2016/04/12/one-girl-two-boots.mp3"></source>
</audio>
为了便于阅读,这也可以放在多行上
if(comboBox1.SelectedItem != null && comboBox2.SelectedItem != null && numericUpDown1.Value != 0 && numericUpDown2.Value != 0 && numericUpDown3.Value != 0 && numericUpDown4.Value != 0)
{
//Code
}
答案 2 :(得分:0)
在参考执行时间等方面没有太多优化。但是代码可以做得有点整洁,开头可能是这样的:
private void button1_Click(object sender, EventArgs e)
{
if(comboBox1.SelectedItem != null &&
comboBox2.SelectedItem != null &&
numericUpDown1.Value != 0 &&
numericUpDown2.Value != 0 &&
numericUpDown3.Value != 0 &&
numericUpDown4.Value != 0)
{
string domacin = comboBox1.GetItemText(comboBox1.SelectedItem);
int D_kosevaPrvoPoluvreme = (int)numericUpDown1.Value;
int D_kosevaDrugoPoluvreme = (int)numericUpDown3.Value;
int D_ukupnoKoseva = D_kosevaDrugoPoluvreme + D_kosevaPrvoPoluvreme;
int D_primljenihKosevaPrvoPoluvreme = (int)numericUpDown2.Value;
int D_primljenihKosevaDrugoPoluvreme = (int)numericUpDown4.Value;
int D_ukupnoPrimljenihKoseva = D_primljenihKosevaDrugoPoluvreme + D_primljenihKosevaPrvoPoluvreme;
string gost = comboBox2.GetItemText(comboBox2.SelectedItem);
int G_kosevaPrvoPoluvreme = (int)numericUpDown2.Value;
int G_kosevaDrugoPoluvreme = (int)numericUpDown4.Value;
int G_ukupnoKoseva = G_kosevaDrugoPoluvreme + G_kosevaPrvoPoluvreme;
int G_primljenihKosevaPrvoPoluvreme = (int)numericUpDown1.Value;
int G_primljenihKosevaDrugoPoluvreme = (int)numericUpDown3.Value;
int G_ukupnoPrimljenihKoseva = G_primljenihKosevaDrugoPoluvreme + G_primljenihKosevaPrvoPoluvreme;
int rezultat;
Functions.odrediPobednika(out rezultat, D_ukupnoKoseva, G_ukupnoKoseva);
//SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\arist\Documents\VisualStudio2015\Projects\NBA\NBA\NBA.mdf;Integrated Security=True");
//SqlCommand cmd = new SqlCommand("", con);
}
}