在访问方法之前检查条件的最佳实现是什么?
我没有在每个方法的顶部使用If语句或在每个方法中使用异常处理,而是从属性中理解的是,他们可以在访问之前使用特定操作标记方法,我在asp.net中看到了这一点,例如,一些java web框架可以使用像身份验证这样的东西,我可以在我的方法之上制作注释或属性,以便在访问此方法之前检查此用户是否被授权。
现在我可以编写自己的自定义属性来检查互联网连接,例如在访问方法之前吗?
我没有要求提供一些代码,我只想确认我是在正确的道路上。
答案 0 :(得分:0)
如果没有进一步澄清,我无法确切地说出你要做什么,但是在执行不需要使用属性/大型嵌套if
的代码之前,有一种流行的方法来检查条件。它被称为保护条款。它在构造函数注入中非常流行,但是有很多很好的用例。
以下是使用guard子句验证是否已将有效InternetConnection
传递给方法的方法示例:
public void DoSomethingWithInternetConnection(InternetConnection internetConnection)
{
// Guard clause
if(internetConnection == null)
{
throw new ArgumentNullException();
}
// Execute code that requires a valid internet connection
internetConnection.DoSomething();
}
您应该能够看到如何扩展它以检查其他方案,或在其他地方使用它。