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语句.我的一个朋友说我可以通过创建一个方法并将函数作为参数传递来减少代码.
我是一名初学程序员,他说的话目前有点超出我的意义.
我想知道我会怎么做呢?
我不想要整个答案,只是如何去做.
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# – 重构如果声明所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)