<分区>
我需要一个类来存储可变值。当此类的实例在代码的不同部分之间共享并且其中一部分更改了该对象内的值时,所有其他部分都会看到新值。
这题不是我能写的。这是给任何搜索的人的:
public class ValueHolder<T> { public T Value { get; set; } }
我的问题是,这个类是否存在于标准库中的任何地方?这感觉像是会包含在它提供的许多小类中的东西。
或者,是否有另一种方法可以在不让我的代码中散布小类的情况下实现所需的结果?
更新/评论:
我对这个问题提出的消极情绪感到有点惊讶。
“这会导致 WTF 计数很高!” “你在重新发明!”
reshape 是我在问这个问题时明确要避免的事情。如果标准库中已经有一些东西,我可以使用它而不是编写一个新类。 (只要 yield 大于成本。)
传递对象并允许对其进行修改的技术一直被使用。您是否曾经编写过一个接受 List 的函数,以便该函数添加/删除值?允许事件处理程序通过在事件参数对象中设置值来更改正在进行的事件的事件处理程序(例如 Form.Closing)怎么样?
在我的例子中,对象只是一个包含单个 bool 值的类。它被传递到另一段代码中,以允许升高或降低该标志。你可能会说这应该是一个函数的返回值或一个 ref 参数,但我使用的框架允许将对象传递给处理程序(类似于 ParameterizedThreadStart 或 Tag 属性)所以我在我的范围内受到限制可以绕过去。
“我想知道标准库是否已经有一个类可以做到这一点。”我心想。 “让我们找出答案!”