案例说明:赋值人这个对象的属性-出生日期,根据属性出生日期内部自动计算出年龄
封装的对象
using System;
namespace Demo.Model
{
/// <summary>
/// 对象人
/// </summary>
public class Person
{
private static int age;
private static DateTime birthDate;
/// <summary>
/// 编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 生日
/// </summary>
public DateTime BirthDate
{
get { return birthDate; }
set
{
birthDate = value;
CalculateAge(birthDate);
}
}
/// <summary>
/// 年龄
/// </summary>
public int Age
{
get { return age; }
set
{
if (value != null)//value就是赋值时传进来的值
{
age = value;
}
}
}
/// <summary>
/// 根据生日计算年龄
/// </summary>
/// <param name="BirthDate"></param>
public void CalculateAge(DateTime BirthDate)
{
DateTime nowDateTime = DateTime.Now;
int timeNum = nowDateTime.Year - BirthDate.Year;
//现在日期减去出生日期,再判断是否满周岁,不满周岁则减去
age = timeNum += (nowDateTime.Month < BirthDate.Month ||
(nowDateTime.Month == BirthDate.Month && nowDateTime.Day < BirthDate.Day))
? -1//满周岁
: 0;//不满周岁
}
}
}
控制台调用
using Demo.Model;
using System;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
var person = GetPerson();
}
static object GetPerson()
{
var dataTime = Convert.ToDateTime("1998-09-18");
return new Person {BirthDate = dataTime ,Age = 100};
}
}
}