C# Guard ArgumentNotNull-argumentName参数的用途是什么?

C# Guard ArgumentNotNull-argumentName参数的用途是什么?,c#,unity-container,C#,Unity Container,在MVC项目中,我们使用Unity的Guard.ArgumentNotNull方法检查构造函数中的空参数。我认为这是一种相当普遍的做法。有人能告诉我这个方法中的第二个参数argumentName是用来做什么的吗?当然,如果项目编译,这意味着参数的命名正确吗?我尝试过将这个字符串名称更改为其他名称,但它没有抛出错误 Guard.ArgumentNotNull(userRoleProvider,“userRoleProvider”)如果参数为null,则argumentName将被传递到Argume

在MVC项目中,我们使用Unity的Guard.ArgumentNotNull方法检查构造函数中的空参数。我认为这是一种相当普遍的做法。有人能告诉我这个方法中的第二个参数argumentName是用来做什么的吗?当然,如果项目编译,这意味着参数的命名正确吗?我尝试过将这个字符串名称更改为其他名称,但它没有抛出错误


Guard.ArgumentNotNull(userRoleProvider,“userRoleProvider”)

如果参数为null,则argumentName将被传递到
ArgumentNullException
中,以指示违规(null)参数的名称


对名称本身没有编译器(或运行时)影响——argumentName字符串可以是任何东西,但为了有意义(例如,用于故障排除)应该是参数的实际名称。

我认为此参数用于在参数为空时可能引发的内部异常。您可能希望了解C#6即将推出的语言功能,名为
nameof()
,它消除了神奇字符串。