【发布时间】:2014-03-17 14:32:06
【问题描述】:
我想在课堂上使用Lazy<T> 的行为来确保某个操作只发生一次。我之前通过有一个 Lazy 来做到这一点,它本质上调用了一个 Func 来做某事,然后返回一个空值。我不关心返回值,我只想确保事情只发生一次。
我想它可以称为Once。如果它尚不存在,我将自己构建并在内部使用Lazy,但我想在这样做之前先问一下。谢谢!
【问题讨论】:
-
我很好奇其中的原因。因为你对返回值不感兴趣,为什么要多次调用这个“函数”却只希望它执行一次?
-
除非我遗漏了什么,否则你不能直接使用singleton pattern吗?
-
有一些初始化逻辑我通常只会在构造函数中调用,但我更愿意避免在构造函数中调用我的依赖项,因为这可能会在使用 DI 时导致问题。
-
相反,我想将此初始化推迟到第一次调用其中一个方法。为此使用 Lazy
很容易,只是想知道是否有办法不浪费 T。:)