我正在做一个关于.Net Academy的教程系列,并遇到了一个问题。他们没有真正有用的帮助部分,所以我想知道这里是否有人可以帮助我。我的问题是我认为我已经完成了正确的代码,但是我收到了这个错误:
并非所有要求都得到满足 您必须声明名为DateOfBirth的DateTime属性
这是我的代码:
using System;
public class Person
{
public Person(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age {get; set;}
public string GetFullName()
{
return FirstName + " " + LastName;
}
public int DateOfBirth()
{
return DateTime.Now.AddYears(-Age).Year;
}
}
public class Program
{
public static void Main()
{
}
}
答案 0 :(得分:3)
此:
public int DateOfBirth()
{
return DateTime.Now.AddYears(-Age).Year;
}
不是属性but a method。您可以轻松地将其转换为属性:
public int DateOfBirth
{
get { return DateTime.Now.AddYears(-Age).Year; }
}
的说明,请参阅文档
由于类型为int
而非所需的DateTime
,您可能仍会遇到问题。跳过.Year
引用并返回整个DateTime
结构,最后更新属性签名:
public DateTime DateOfBirth
{
get { return DateTime.Now.AddYears(-Age); }
}
答案 1 :(得分:2)
你应该将DateOfBirth声明为像这样的属性
public DateTime DateOfBirth {get; set;}
和年龄应该是一个计算的财产,而不是像这样
public int Age
{
get
{
return DateTime.Now.Year - DateOfBirth.Year;
}
}
答案 2 :(得分:1)
你有一个名为DateOfBirth的方法,它应该是这样的属性:
public DateTime DateOfBirth
{
get { return DateTime.Now.Date.AddYears(-Age); }
}
注意现在使用.Date获取日期而不是时间部分。