Heim  >  Artikel  >  Backend-Entwicklung  >  Wie validiere ich das Geburtsdatum mithilfe einer fließenden Validierung in C#, wenn das Geburtsdatum das aktuelle Jahr überschreitet?

Wie validiere ich das Geburtsdatum mithilfe einer fließenden Validierung in C#, wenn das Geburtsdatum das aktuelle Jahr überschreitet?

WBOY
WBOYnach vorne
2023-08-30 10:09:02879Durchsuche

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

Um eine Validierungsregel für ein bestimmtes Attribut anzugeben, rufen Sie die RuleFor-Methode auf und übergeben Sie einen Lambda-Ausdruck, der das zu validierende Attribut darstellt.

RuleFor(p => p.DateOfBirth)

Um den Validator auszuführen, instanziieren Sie die Validierung Object und rufen Sie die Validate-Methode auf und übergeben Sie ihr das zu validierende Objekt.

ValidationResult results = validator.Validate(person);

Validate-Methode gibt ein ValidationResult-Objekt zurück. Es enthält zwei Eigenschaften

IsValid – einen booleschen Wert, der angibt, ob die Validierung erfolgreich war.

Errors – Sammlung von ValidationFailure-Objekten mit Details zu etwaigen Validierungsfehlern

Beispiel 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;
   }
}

Ausgabe

Invalid Date Of Birth

Das obige ist der detaillierte Inhalt vonWie validiere ich das Geburtsdatum mithilfe einer fließenden Validierung in C#, wenn das Geburtsdatum das aktuelle Jahr überschreitet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen