验证命名约定? C#

时间:2010-08-26 13:03:43

标签: c# standards

非常简单的问题,但我想开始使用一致的命名约定来验证方法,我想不出最好的方法!

人们倾向于使用IsDataValid()风格吗?还是有其他更具描述性和意义的人吗?

干杯

3 个答案:

答案 0 :(得分:3)

这取决于您的验证方法的作用。

如果它返回一个布尔值,那么可能以Is开头并以Valid结尾是一个很好的起点。使用is进行布尔调用通常会导致if语句中的可读代码。

如果您的验证方法抛出异常,那么我通常会使用类似Check的方法启动方法名称。

但是,值得考虑(因为方法通常应该使用动词)是使用Validate开始方法名称。 Is样式通常更适用于属性。

答案 1 :(得分:3)

与任何涉及命名约定的内容一样,没有正确的答案,但是验证方法存在许多常见问题,这些问题适合某种方法,即:

  • 如果一切正常,通常只需要验证的布尔状态。
  • 如果有问题,通常需要了解有关问题的详细信息。
  • 您通常希望对象具有类似的验证方法。

我发现有用的一种方法是为每个我要验证的模型对象设置一个单独的验证器类,它实现一个通用的IValidator接口,通常使用以下方法:

  • 使用该对象进行验证的构造函数。
  • 一个名为IsValid()的属性,用于验证对象,返回一个布尔值,但在私有变量中存储特定错误,因此当您想要错误时不需要重新计算验证。
  • 一个名为ErrorMessages的属性,用于验证对象(如果尚未验证),并返回对象的错误列表。

这允许在您的业务逻辑中非常自然地使用:

BusinessObject obj = new BusinessObject();

// populate fields

BusinessObjectValidator objValidator = obj.GetValidator();

if (objValidator.IsValid) {
    obj.Save();
} else {
    foreach (var errorMessage in objValidator.ErrorMessages) {
        // output message
    }
}

答案 2 :(得分:1)

  

人们倾向于使用IsDataValid()风格吗?

当方法返回单个布尔值时,我通常使用'Is'MethodName样式。在命名方面完全可以接受。很多时候数据验证是在属性集中而不是方法中完成的,因此在这种情况下,您不需要更改属性名称以指示它验证其上的数据集。

这是一个链接,它提供了一些您可能会感兴趣的通用命名指南:

命名指南 http://msdn.microsoft.com/en-us/library/xzf533w0(v=vs.71).aspx