c#中的常量数组
本文关键字:数组 常量 | 更新日期: 2023-09-27 18:06:39
我开始学习c#几天了,如果这是愚蠢的问题!我有一个像这样的字符串数组
private readonly string[] algorithm_list = {
"Genetic Algorithm",
"Dynamic Algorithm"
};
和我的代码
switch (al_choose)
{
case algorithm_list[0]:
break;
case algorithm_list[1]:
break;
default:
}
错误是algorithm_list[0]不是常量!所以我尝试其他声明,比如
private readonly string[] algorithm_list
或
private contant string[] algorithm_list
但它仍然不工作????有什么建议吗?非常感谢!
对于这些情况,最好使用Enum
public enum AlgorithmList
{
GeneticAlgorithm,
DynamicAlgorithm
}
:
switch (al_choose)
{
case AlgorithmList.GeneticAlgorithm:
break;
case AlgorithmList.DynamicAlgorithm:
break;
default:
break;
}
EDIT如果您要将Enum
的值绑定到ComboBox
,您可以这样做:
yourCombobox.ItemsSource = Enum.GetValues(typeof(AlgorithmList)).Cast<AlgorithmList>();
数组元素不是常量,所以不能在switch语句中使用数组元素。
选项:
- 将数组元素替换为内联常量
case "Genetic Algorithm":...
或实际常量const string Choice1="Genetic Algorithm";... case Choice1:...
- 这种
switch
语句的标准方法是"选择"到"动作委托"的字典,但我不会跳入其中。
if
语句的使用顺序:if (al_choose == algorithm_list[0]) { /*do something*/ }