c# – Lambda Func <>和Fluent

前端之家收集整理的这篇文章主要介绍了c# – Lambda Func <>和Fluent前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
现在有许多Fluent实现可以与Lambdas一起完成非常整洁的工作.我想把我的大脑包裹起来,这样我就可以开始创造一些这样的东西了,但我还没有找到一个我的大脑能够理解的解释.

考虑这个简单的Person Validator示例

public class PersonValidator : IValidator<Person>
{
     public PersonValidator()
     {
          AddRule(p => p.FirstName).CannotBeNull().CannotBeBlank();
          AddRule(p => p.LastName).CannotBeNull().CannotBeBlank();
     }

     public List<ValidationResult> Validate(Person p)
     {
         // pseudo...
         apply all rules specified in constructor,return results
     }
}

我已经成功地使用我的Validator上的方法来完成所有这些工作的一部分…

public ValidationResult<T,TProp> AddRule<T,TProp>(Func<T,TProp> property)
{
    ... not sure what to do here.  This method gives me the ability to use the lambda
    ... for specifying which properties i want to validate
}

然后我可以创建扩展方法,扩展IValidator以实现CannotBeNull和CannotBeEmpty.

所以我似乎有问题的上半部分和后半部分,但我不确定如何将它们组合在一起.

寻找有意义的解释…我想“得到它”.

猜你在找的C#相关文章