你好我试图在一个人的出生日期大于实际日期时举起一个事件。
我对事件感到陌生,似乎无法发挥作用。
代码在下面,
namespace LibClassLuchthaven
{
public class Person
{
public DateTime Birthdate { get; set; }
public string Firstname { get; set; }
public Gender Gender { get; set; }
public string Name { get; set; }
public event EventHandler BirthdateInFuture;
public Person()
{
this.Birthdate = DateTime.Now;
this.Firstname = string.Empty;
this.Gender = Gender.unknown;
this.Name = string.Empty;
}
public Person(DateTime birthdate, string firstname, Gender gender, string name)
{
this.Birthdate = birthdate;
this.Firstname = firstname;
this.Gender = gender;
this.Name = name;
}
public void OnBirthdateInFuture()
{
if (BirthdateInFuture!=null)
{
if (this.Birthdate > DateTime.Now)
{
BirthdateInFuture(this, EventArgs.Empty);
}
}
}
public override string ToString()
{
return this.Name + ", " + this.Firstname + " - " + this.Birthdate + " ( +" + this.Gender + ")";
}
}
}
public partial class FormCrewManagement : Form
{
public Person person = new Person();
public FormCrewManagement()
{
InitializeComponent();
person.BirthdateInFuture += Person_BirthdateInFuture;
}
private void Person_BirthdateInFuture(object sender, EventArgs e)
{
MessageBox.Show("Birthdate is in the future");
}
答案 0 :(得分:2)
尝试更改属性
datetime.strptime(d,"%Y%m%d%H").strftime("%d/%m/%Y %H:%M:%S")
到
public DateTime Birthdate { get; set; }
这将在将来生日值时引发事件。
答案 1 :(得分:0)
看起来问题可能是合乎逻辑的,而不是与事件有关。您将生日设置为今天的日期...然后检查它是否会更晚。它永远不会。
.align-text-top
答案 2 :(得分:0)
菲利普 代码中没有地方引发事件。您可以创建一个名为BirthDate的属性,并在setter部分中引发事件。当生日变更为未来日期时,它会/可能会提升事件。