gpt4 book ai didi

c#-4.0 - 重置系统.Lazy

转载 作者:行者123 更新时间:2023-12-03 07:41:53 26 4
gpt4 key购买 nike

在商务舱中,我有:

 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 更改,我想“重置”我的经理属性。如何做到这一点?

我能做到:

 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() 或类似的东西吗?

最佳答案

Lazy<T>没有定义 Reset() 方法。我认为你所实现的看起来不错。

关于c#-4.0 - 重置系统.Lazy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5961252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com