C#-将Switch语句转换为If-Else

问题描述 投票:0回答:1

我在执行此特定任务时遇到了一些麻烦。使用switch语句并将其转换为if-else。该程序利用一个列表框来选择位置并显示相应的时区。

if (cityListBox.SelectedIndex != -1)
        {
            //Get the selected item.
            city = cityListBox.SelectedItem.ToString();

            // Determine the time zone.
            switch (city)
            {
                case "Honolulu":
                    timeZoneLabel.Text = "Hawaii-Aleutian";
                    break;
                case "San Francisco":
                    timeZoneLabel.Text = "Pacific";
                    break;
                case "Denver":
                    timeZoneLabel.Text = "Mountain";
                    break;
                case "Minneapolis":
                    timeZoneLabel.Text = "Central";
                    break;
                case "New York":
                    timeZoneLabel.Text = "Eastern";
                    break;
            }
        }
        else
        {
            // No city was selected.
            MessageBox.Show("Select a city.");
c# if-statement listbox switch-statement
1个回答
0
投票

因此,在大多数编程语言中,switch语句和if-else语句几乎是同一条语句(通常来说;对于某些语言,某些编译器上的切换可能会更快,而我不确定C#尤其是)。 Switch相对于if-else或多或少是语法糖。无论如何,与您的开关相对应的if-else语句看起来像这样:

if (city == "Honolulu") {
    timeZoneLabel.Text = "Hawaii-Aleutian";
} else if (city == "San Francisco") {
    timeZoneLabel.Text = "Pacific";
} else if (city == "Denver") {
    timeZoneLabel.Text = "Mountain";
}
... etc

这有意义吗?

© www.soinside.com 2019 - 2024. All rights reserved.