我团队中的开发人员经常在循环中编写代码,进行相对较慢的调用(例如,数据库访问或web服务调用或其他较慢的方法)。这是一个非常常见的错误。
是的,我们练习代码审查,并尝试在合并之前捕获并修复它们。然而,早点失败更好,不是吗?
那么有没有办法通过编译器来捕捉这个错误呢?
示例:
想象一下这个方法
public ReturnObject SlowMethod(Something thing)
{
// method work
}下面的方法是在一个循环中调用的,这是一个错误。
public ReturnObject Call(IEnumerable<Something> things)
{
foreach(var thing in Things)
SlowMethod(thing); // Should throw compiler error or warning in a loop
}有没有办法用一个属性或编译器语句来修饰上面的SlowMethod(),这样它在循环中使用时就会报错?
发布于 2021-01-16 07:00:36
不,在常规的C#中没有任何东西可以防止在循环中使用方法。
您的选择:
发布于 2021-01-16 07:41:15
显然,在循环中调用那些缓慢的方法是有意义的--您试图将工作放在防止这种情况发生的过程中,但这是将工作放在从根本上负面的东西上。为什么不做些积极的事情呢?显然,您已经提供了一个便于在循环中使用的API。因此,在以前循环中会发生错误使用的情况下,提供一些更容易正确使用的替代方案,例如:
https://stackoverflow.com/questions/65744576
复制相似问题