我经常会有一些重复的代码。
通常,我把它们放在一个函数中,但有时我讨厌这样做,因为:
因此,为了模拟C#中缺少的内联代码,我使用了Action委托:
public void Display(DateTime from, DateTime to)
{
var start = from.ToOADate();
var end = to.ToOADate();
[...]
// This Action delegate helps me not to repeat the code.
var removePoints = new Action<Series>(serie =>
{
var pointsToRemove = serie.Points.Where(pt => pt.XValue < start || pt.XValue > end).ToArray();
foreach (var pt in pointsToRemove)
serie.Points.Remove(pt);
});
removePoints(FlameTemperatureSerie);
removePoints(BoshGasFlowRateSerie);
removePoints(PercCOSerie);
removePoints(PercH2Serie);
[...]
}
这非常有用,特别是因为Action委托执行上下文可以使用局部变量。
我对我好,但我从来没有看到过没有动作代表这样使用过。这就是为什么我想知道是否可以推荐这种做法,或者是否可能导致我不知道的问题。
答案 0 :(得分:2)
只要它不会太混乱,那就没有错。
答案 1 :(得分:0)
如果一个函数只调用一次,如果它使代码更易于阅读和维护,那么它是完全有效的。