如果出生日期超過目前年份,如何使用 C# 中的流暢驗證來驗證出生日期?

WBOY
發布: 2023-08-30 10:09:02
轉載
875 人瀏覽過

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

要為特定屬性指定驗證規則,請呼叫RuleFor方法,傳遞一個表示要驗證的屬性的lambda表達式

RuleFor(p => p.DateOfBirth )

要執行驗證器,請實例化驗證器物件並呼叫Validate方法,將要驗證的物件傳遞給它。

ValidationResult results = validator.Validate(person);

Validate方法傳回一個ValidationResult物件。它包含兩個屬性

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;
   }
}
登入後複製

輸出

Invalid Date Of Birth
登入後複製

以上是如果出生日期超過目前年份,如何使用 C# 中的流暢驗證來驗證出生日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!