【发布时间】:2011-07-15 09:32:29
【问题描述】:
我有以下代码(这是一个示例,还有更多其他条件与Session["Yapilanislem_Popup"].ToString() 不同。)。
if (Session["Yapilanislem_Popup"].ToString() == "updatemustericeki")
{
KayitGuncelleme();
}
else if (Session["Yapilanislem_Popup"].ToString() == "updatemusterisenedi")
{
KayitGuncelleme();
}
///
else if (Session["Yapilanislem_Popup"].ToString() == "yenitahsilat")
{
YeniKayit();
Session["Yapilanislem_Popup"] = "updatetahsilat";
BaslikLabel.Text = "Tahsilat Güncelle";
}
else if (Session["Yapilanislem_Popup"].ToString() == "yeniodeme")
{
YeniKayit();
Session["Yapilanislem_Popup"] = "updateodeme";
BaslikLabel.Text = "Ödeme Güncelle";
}
我想使用switch-case 或Contains() 或switch-case 和Contains() 重构此代码。
对于Contains(),我想我可以这样做:
if (Session["Yapilanislem_Popup"].ToString().Contains("update"))
{
KayitGuncelleme();
}
else if(Session["Yapilanislem_Popup"].ToString().Contains("yeni")){
YeniKayit();
Session["Yapilanislem_Popup"] = "updateodeme";
BaslikLabel.Text = "Ödeme Güncelle";
}
对于switch-case,我基本上可以分情况写。
Switch-case 对于Session["Yapilanislem_Popup"].ToString() 的更多条件将是多行代码,但是如果我使用Contains(),代码行数将会减少。
我也担心性能问题。
在性能、可读性和可重用性方面,哪个更好用?
【问题讨论】:
-
也许你可以提到编程语言,否则评论性能可能会很困难:-)
-
@Frank 对不起施密特先生,这是 C# 我标记了它,我认为它很明显。
-
最佳性能(以及可读性)将创建包含 Session["Yapilanislem_Popup"].ToString() 的变量,而不是多次调用它
标签: c# performance if-statement switch-statement