ホームページ > バックエンド開発 > C#.Net チュートリアル > 生年月日が現在の年を超えている場合、C# で流暢な検証を使用して生年月日を検証するにはどうすればよいですか?

生年月日が現在の年を超えている場合、C# で流暢な検証を使用して生年月日を検証するにはどうすればよいですか?

WBOY
リリース: 2023-08-30 10:09:02
転載
911 人が閲覧しました

如果出生日期超过当前年份,如何使用 C# 中的流畅验证来验证出生日期?

特定の属性の検証ルールを指定するには、RuleFor メソッドを呼び出し、検証する属性を表すラムダ式を渡します。

RuleFor(p => p. DateOfBirth )

バリデーターを実行するには、バリデーター オブジェクトをインスタンス化し、Validate メソッドを呼び出して、検証するオブジェクトを渡します。

ValidationResult results = validator.Validate(person);

Validate メソッドは ValidationResult オブジェクトを返します。これには、検証が成功したかどうかを示すブール値である 2 つのプロパティ

IsValid が含まれます。

Errors - 検証失敗に関する詳細を含む ValidationFailure オブジェクトのコレクション

例 1

static void Main(string[] args) {
   List errors = new List();

   PersonModel person = new PersonModel();
   person.FirstName = "TestUser";
   person.LastName = "TestUser";
   person.AccountBalance = 100;
   person.DateOfBirth = DateTime.Now.Date.AddYears(1);

   PersonValidator validator = new PersonValidator();

   ValidationResult results = validator.Validate(person);

   if (results.IsValid == false) {
      foreach (ValidationFailure failure in results.Errors){
         errors.Add(failure.ErrorMessage);
      }
   }

   foreach (var item in errors){
      Console.WriteLine(item);
   }
   Console.ReadLine();

   }
}

public class PersonModel {
   public string FirstName { get; set; }
   public string LastName { get; set; }
   public decimal AccountBalance { get; set; }
   public DateTime DateOfBirth { get; set; }
}

public class PersonValidator : AbstractValidator{
   public PersonValidator(){
      RuleFor(p => p.DateOfBirth)
      .Must(BeAValidAge).WithMessage("Invalid {PropertyName}");
   }

   protected bool BeAValidAge(DateTime date){
      int currentYear = DateTime.Now.Year;
      int dobYear = date.Year;

      if (dobYear <= currentYear && dobYear > (currentYear - 120)){
         return true;
      }

      return false;
   }
}
ログイン後にコピー

Output

Invalid Date Of Birth
ログイン後にコピー

以上が生年月日が現在の年を超えている場合、C# で流暢な検証を使用して生年月日を検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート