c# – 重构如果声明

c# – 重构如果声明,第1张

概述我必须为我的C#编程评估创建一个评分系统,我正在尝试重构冗余代码. foreach (Student item in mark){ if (ComboBoxGradeMethod.SelectedIndex == 0) { item.Grade = vetMethod.VETGrade(item.Mark); } else if (ComboBox 我必须为我的C#编程评估创建一个评分系统,我正在尝试重构冗余代码.

foreach (Student item in mark){    if (ComboBoxGradeMethod.Selectedindex == 0)    {        item.Grade = vetMethod.VETGrade(item.Mark);    }    else if (ComboBoxGradeMethod.Selectedindex == 1)    {        item.Grade = newVETMethod.VETGrade(item.Mark);    }    else if (ComboBoxGradeMethod.Selectedindex == 2)    {        item.Grade = gradeMethod.CollegeGrade(item.Mark);    }    else    {        MessageBox.Show("Please select a grading scheme.");    }}

这个’for each’循环中有3个if语句.我的一个朋友说我可以通过创建一个方法并将函数作为参数传递来减少代码.

我是一名初学程序员,他说的话目前有点超出我的意义.
我想知道我会怎么做呢?
我不想要整个答案,只是如何去做.

解决方法 假设item.Mark是一个int而item.Grade是一个字符串,那么我就是这样做的:

var gradeFromMarkMethods = new Dictionary<int,Func<int,string>>(){    { 0,vetMethod.VETGrade },{ 1,newVETMethod.VETGrade },{ 2,gradeMethod.CollegeGrade },};Func<int,string> gradeFromMark;if (gradeFromMarkMethods.TryGetValue(ComboBoxGradeMethod.Selectedindex,out gradeFromMark)){    foreach (Student item in mark)    {        item.Grade = gradeFromMark(item.Mark);    }}else{    MessageBox.Show("Please select a grading scheme.");}
总结

以上是内存溢出为你收集整理的c# – 重构如果声明全部内容,希望文章能够帮你解决c# – 重构如果声明所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存