我如何分解这段代码以避免 C# 中的代码重复?
我有以下代码:
private int AllFeb(Forecast f, IRepository repository)
{
return All(f, repository, f.Feb);
}
private int AllJan(Forecast f, IRepository repository)
{
return All(f, repository, f.Jan);
}
private int All(Forecast f, IRepository repository, int callBk)
{
var otherForecasts = repository.Query<Forecast>().Where(r => r.PersonId == f.PersonId);
if (otherForecasts.Any())
{
return otherForecasts.Sum(r => r.Feb) + callBk;
}
return 0;
}
如您所见,我试图提出一个可以为每个
月。问题是我需要在 All
方法中使用以下行:
otherForecasts.Sum(r => r.Feb)
是通用的,但我需要从外部传递 Sum
方法内的回调(因为我不'不希望将其硬编码为 r.Feb
。
有什么方法可以避免这里出现代码重复吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将
Expression>
传递到 All() 方法中。Pass an
Expression<Func<Forecast, int>>
into the All() method.