我有一个叫做Person属性的类Name,DateOfBirth和Age.Name并且DateOfBirth在创建类实例时提供但我希望在创建类的实例时Age自动计算属性.我知道如何使用Parametrized Constructor来做到这一点,但是当我试图理解Properties的功能时,我试图遵循程序,但它没有给出预期的输出.
using System;
namespace Property
{
class Person
{
#region private varaibles
private int _age;
#endregion
#region properties
public string Name { get; set; }
public DateTime DateOfBirth { get; set; }
public int Age
{
get { return _age; }
set { _age = (DateTime.Now - DateOfBirth).Days / 365; }
}
#endregion properties
}
class Program
{
static void Main(string[] args)
{
Person P = new Person() { Name = "Merin Nakarmi", DateOfBirth = new DateTime(1990, 1, 12) };
Console.WriteLine("{0}, whose Date Of Birth is {1} is {2} years old!", P.Name, P.DateOfBirth, P.Age);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的输出是
我期待年龄为28岁.请帮助.
看来你需要一个只读年龄,如果是这样,你不需要在Age属性中设置任何东西,只需:
public int Age
{
get {
return DateTime.Now.Year - DateOfBirth.Year;
}
}
Run Code Online (Sandbox Code Playgroud)
您可能还想看看这里,并阅读有关属性的更多信息.
顺便说一下@John指出正确计算年龄(意味着考虑到闰年,你可能想看看这里)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |