c# - 如何在 C# 中使用 Switch
问题描述
根据组合框中的选择,我有一些可能执行特定命令。我使用了 if 语句,但我发现几乎相同的代码在不止一种情况下重复。我的问题是:问题是否有一种简单的方法来做到这一点,比如使用 switch 语句?这是我用于每个按钮的代码:
{
if (cmbTrans.Text == "bad")
{
string istrue = "true";
bool mybool = Convert.ToBoolean(istrue);
trans.ADD_NEW_TRANS(Convert.ToInt32(txtID.Text), dtTransDate.Value, txtVibNO.Text, cmbSenderSite.Text, cmbRecievedSite.Text,
Convert.ToInt32(txtWorkHours.Text), Convert.ToInt32(cmbTrans.SelectedValue), Program.userInfo.UserName);
vib.UPDATE_TRANS_ISOFF(txtVibNO.Text, mybool);
MessageBox.Show("done", "done", MessageBoxButtons.OK, MessageBoxIcon.Information);
btnSave.Enabled = false;
if (cmbTrans.Text == "good")
{
string istrue = "false";
bool mybool = Convert.ToBoolean(istrue);
trans.ADD_NEW_TRANS(Convert.ToInt32(txtID.Text), dtTransDate.Value, txtVibNO.Text, cmbSenderSite.Text, cmbRecievedSite.Text,
Convert.ToInt32(txtWorkHours.Text), Convert.ToInt32(cmbTrans.SelectedValue), Program.userInfo.UserName);
vib.UPDATE_TRANS_ISOFF(txtVibNO.Text, mybool);
MessageBox.Show("done", "done", MessageBoxButtons.OK, MessageBoxIcon.Information);
btnSave.Enabled = false;
}
if (cmbTrans.Text == "Send")
{
if (string.IsNullOrEmpty(cmbRecievedSite.Text) || string.IsNullOrEmpty(cmbSenderSite.Text))
{
MessageBox.Show("Please specify the sender and the receiver", "!attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
string istrue = "true";
bool mybool = Convert.ToBoolean(istrue);
trans.ADD_NEW_TRANS(Convert.ToInt32(txtID.Text), dtTransDate.Value, txtVibNO.Text, cmbSenderSite.Text, cmbRecievedSite.Text,
Convert.ToInt32(txtWorkHours.Text), Convert.ToInt32(cmbTrans.SelectedValue), Program.userInfo.UserName);
vib.UPDATE_TRANS_ISOFF(txtVibNO.Text, mybool);
MessageBox.Show("done", "done", MessageBoxButtons.OK, MessageBoxIcon.Information);
btnSave.Enabled = false;
}
if (cmbTrans.Text == "Receive")
{
if (string.IsNullOrEmpty(cmbRecievedSite.Text) || string.IsNullOrEmpty(cmbSenderSite.Text))
{
MessageBox.Show("Please specify the sender and the receiver", "!attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
string istrue = "true";
bool mybool = Convert.ToBoolean(istrue);
trans.ADD_NEW_TRANS(Convert.ToInt32(txtID.Text), dtTransDate.Value, txtVibNO.Text, cmbSenderSite.Text, cmbRecievedSite.Text,
Convert.ToInt32(txtWorkHours.Text), Convert.ToInt32(cmbTrans.SelectedValue), Program.userInfo.UserName);
vib.UPDATE_TRANS_ISOFF(txtVibNO.Text, mybool);
MessageBox.Show("done", "done", MessageBoxButtons.OK, MessageBoxIcon.Information);
btnSave.Enabled = false;
}
}```
解决方案
创建一个函数并调用该函数。
public void Foo()
{
string istrue = "true";
bool mybool = Convert.ToBoolean(istrue);
trans.ADD_NEW_TRANS(Convert.ToInt32(txtID.Text), dtTransDate.Value, txtVibNO.Text, cmbSenderSite.Text, cmbRecievedSite.Text,
Convert.ToInt32(txtWorkHours.Text), Convert.ToInt32(cmbTrans.SelectedValue), Program.userInfo.UserName);
vib.UPDATE_TRANS_ISOFF(txtVibNO.Text, mybool);
MessageBox.Show("done", "done", MessageBoxButtons.OK, MessageBoxIcon.Information);
btnSave.Enabled = false;
}
你可以像这样使用开关
switch (cmbTrans.Text)
{
case "Good": //this is mean if(cmbTrans.Text == "Good")
{
Foo();
//code
break;
}
default:
break;
}
推荐阅读
- jquery - 如何在 jquery 变量中获取 json_encode 值?
- java - 是否可以在 Hibernate @ColumnTransformer 中为 pgcrypto 更改密码?
- azure - 无法从 VSTS 登录服务原理,但在 TFS 和 Azure 门户状态成功下工作
- kubernetes - yaml 中的模板文件
- r - ggplot2不显示Y轴的值
- styled-components - 如何将 ThemeProvide 加载到 Styleguidist?
- amazon-web-services - 我可以保持任务定义处于活动状态,即使在使用 docker 完成我的 Java 作业之后
- javascript - 随着视口变小,如何更改轮播的幻灯片指示器?
- hbase - 从 HBase-1.2.4 升级到 HBase-2.0.0
- python - 我正在使用 SMTPLib 向 gmail 帐户发送电子邮件