【发布时间】:2011-05-11 08:20:40
【问题描述】:
在商务舱我有:
class Employee{
public Employee() {
m_Manager = new Lazy<Manager>( () => return myRepository.GetManager(ManagerId); );
}
public int ManagerId { get; set;}
private Lazy<Manager> m_Manager;
public Manager Manager {
get {
return m_Manager.Value;
}
}
}
这工作正常,只有在访问 Manager 属性时才会调用自定义存储库。 现在,如果 ManagerId 更改,我想“重置”我的 manager 属性。该怎么做?
我能做到:
class Employee{
public Employee() {
m_Manager = new Lazy<Manager>( () => return myRepository.GetManager(ManagerId); );
}
private int m_ManagerId;
public int ManagerId {
get { return m_ManagerId;}
set {
if(m_ManagerId != value)
{
m_ManagerId = value;
m_Manager = new Lazy<Manager>( () => return myRepository.GetManager(ManagerId); );
}
}
}
private Lazy<Manager> m_Manager;
public Manager Manager {
get {
return m_Manager.Value;
}
}
}
有没有更清洁的方法来做到这一点?没有m_Manager.Reset() 之类的吗?
【问题讨论】:
标签: c#-4.0