Expression Builder
入力チェックのライブラリに応用してみた。言語内DSLとしての読みやすさに期待したのだが、それ以上に表現力が広がった。2番目のRangeのように文字列パース方式と組み合わせるとより効果的だった。
// 0=<入力数値<10 ValidatorExpression rule1 = new ValidatorExpression() .DecimalType() .GreaterThanEq(0) .LessThan(10); // 3日前<=入力日付<本日 ValidatorExpression rule2 = new ValidatorExpression() .DateTimeType() .Range("[Today-3,Today)"); // 入力数値:10桁以内・必須項目 ValidatorExpression rule3 = new ValidatorExpression() .IntegerType() .LengthLimit(10) .Required();