C# - 在访问方法之前检查条件

时间:2014-11-02 20:58:58

标签: c# methods attributes conditional-statements

在访问方法之前检查条件的最佳实现是什么?

我没有在每个方法的顶部使用If语句或在每个方法中使用异常处理,而是从属性中理解的是,他们可以在访问之前使用特定操作标记方法,我在asp.net中看到了这一点,例如,一些java web框架可以使用像身份验证这样的东西,我可以在我的方法之上制作注释或属性,以便在访问此方法之前检查此用户是否被授权。

现在我可以编写自己的自定义属性来检查互联网连接,例如在访问方法之前吗?

我没有要求提供一些代码,我只想确认我是在正确的道路上。

1 个答案:

答案 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();
}

您应该能够看到如何扩展它以检查其他方案,或在其他地方使用它。