【发布时间】:2018-04-22 05:27:25
【问题描述】:
我在玩课程和约会时间。我想检查一个人的年龄是否超过 16 岁或不使用 get,set 属性。这是课程Test
class Test
{
private DateTime _Dob;
public DateTime Dob
{
get { return _Dob; }
set
{
if (DateTime.Now.Year - 16 < _Dob.Year)
{
Console.WriteLine("error");
}
else
{
_Dob = value; }
}
}
public Test(DateTime dob)
{
_Dob = dob;
}
这里是主要的
Test dob = new Test(new DateTime(2007,12,01));
dob.Dob();
Console.ReadLine();
它在 main 中说 dob.Dob(); 不是一种方法。我该如何解决这个问题?
【问题讨论】:
-
请注意,这不是一个好的做法。这种对吸气剂的检查是出乎意料的行为。如果我在 getter 上遇到错误,我认为 getting the value 出错了。您通常期望在 setter 或在这种情况下,在类的 constructor 上进行这种验证。顺便说一句,不确定这是否重要,但您的支票不是检查“他们是否超过 16 岁”。如果我出生于 2002 年 12 月,即使我只有 15 岁,我也能通过检查。
-
抱歉,您正在使用setter,这是正确的。它不起作用的事实是因为您没有使用setter。