我正在学习有关控制器,模型和视图的Code First。我希望有一个自定义的年龄值,我不知道如何在我的模型中进行这种“计算”。我一直在使用类似public int Age {get; set; }
之类的东西而不对该变量进行任何计算,但现在我希望根据另一个变量值(例如Age = CurrentDate-BirthDate
)对该变量值执行某些操作。
因为我还是{get; set;},我觉得我很困惑如何在更新Age时保持该表达式。
这是我的模型看起来的样子(只是变量),如上所述,我想用BirthDate的用户输入值做一个等式来设置Age的值,而不是从用户那里得到它。
public class Actor
{
public int ID { get; set; }
public string Name { get; set; }
public DateTime BirthDate { get; set; }
public DateTime Age;
public decimal NetValue { get; set; }
}
*在旁注中,我应该使用年龄的“int”或“DateTime”吗? DateTime用在教程中,因此它在我的代码中。
非常感谢!
答案 0 :(得分:1)
对于只读计算属性,您只需要一个手动获取器。像这样:
public int Age
{
get { return (DateTime.Now - BirthDate).TotalDays / 365; }
}
注意这个"除以365"是实际计算年份的非常原始方式。有better ways。这纯粹是一个小例子,用于演示模型的计算属性。