我目前正在使用以下代码......基本上,此方法为每个任务分配正确的布尔标志(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 = 布尔值
User.TASKX = 布尔值
欢迎任何反馈。我确信有一个简单的解决方案。
对于很多这样的值,我会使用类似这样的地图:
Dictionary<ClassStructure.Tasks_CallIDs_Strings, Task_Flag>
并通过映射 CallID 字符串检索值。
Edit:
现在大家可以看到,重构这个例子的真正问题在于重构User.TASKX。使其成为一个列表就足够了 - 因为它可以通过相同的字符串进行索引ClassStructure.Tasks_CallIDs_Strings
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)