模型类可以包含方法和构造函数

Rom*_*key 4 c#

:`模型类可以包含方法和构造函数吗?" [BEST PRACTICE]

我有一个员工模型类,包括员工的姓名,年龄,工资等......

public class Employee
{
    public string Name { get; set; }
    public int Age { get; set; }
    public int Salary { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

所以上面可以Model Class包含一些自我更新方法[比如用计时器或其他东西每1小时更新一次员工的年龄]和\或构造函数,或者更好地处理来自执行者的所有事情?

Ond*_*cny 5

他们为什么不能?真正的答案是:这取决于您的用例.模式,例如某种模型类,是建议,常见的做事方式,而不是牢不可破的教条.

注意:"使用计时器或其他东西每1小时更新员工年龄"的示例从根本上说是错误的.存储年龄根本就是错误的,除非您在某个时刻存储快餐店.一个更好的解决方案是存储出生日期,并计算年龄.例如,通过Age仅使用getter 定义属性.


Che*_*rot 4

模型应该包含与模型相关的所有逻辑(这就是 DSL),所以,是的,它可以每小时更新一次。当你定义自动属性时,它与定义setter和getter相同,所以当然你也可以添加方法和构造函数。