我有以下正在使用的代码....基本上,此方法为每个Task分配正确的 bool 标志(TRUE/FALSE)。随着需要添加越来越多的任务......我可以看到 switch 语句将不得不增长以适应每项任务。
必须有一种更简单的方法......保持方法小。
代码:(忘记命名约定,已经过更改,可以发布)
public ClassStructure.User AssignTaskStatusToUser(ClassStructure.User,
List<ClassStructure.Tasks> TaskStatus)
{
foreach (ClassStructure.Tasks data in TaskStatus)
{
string Task_CallID = data.Task_Call_ID;
switch (Task_CallID)
{
case ClassStructure.Tasks_CallIDs_Strings.TASK1:
User.TASK1 = data.Task_Flag;
break;
case ClassStructure.Tasks_CallIDs_Strings.TASK2:
User.TASK2 = data.Task_Flag;
break;
case ClassStructure.Tasks_CallIDs_Strings.TASK3:
User.TASK3 = data.Task_Flag;
break;
}
}
return User;
}
ClassStructure.Tasks_CallIDs_Strings = 任务的字符串表示
data.Task_Flag = bool 值
User.TASKX = bool 值
欢迎任何反馈。我相信有一个简单的解决方案。
最佳答案
对于很多这样的值,我会使用这样的 map :
Dictionary<ClassStructure.Tasks_CallIDs_Strings, Task_Flag>
并通过映射 CallIDs 字符串来检索值。
编辑:
正如大家现在看到的,重构这个例子的真正问题在于重构 User.TASKX。让它成为一个列表就足够了 - 因为它可以被相同的字符串 ClassStructure.Tasks_CallIDs_Strings 索引
关于c# - 重构我的 C# 代码 - Switch 语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/561401/