gpt4 book ai didi

c# - .Net 中是否有一个类来存储一个值和一个先前的值?

转载 作者:行者123 更新时间:2023-11-30 12:20:30 24 4
gpt4 key购买 nike

我需要存储对象的当前值及其先前值。我想到了这样的事情:

struct TwoStepHistory<T>
{
private T _v0;

public T Value
{
get
{
return _v0;
}
set
{
OldValue = _v0;
_v0 = value;
}
}

public T OldValue { get; private set; }
}

但它看起来如此明显和简单,以至于我认为 BCL 或 dotnet 中的其他地方一定有一些东西在做同样的事情。不想重新发明一辆自行车,你知道的。有人知道类似的结构吗?

有人评论这是否可用于引用类型,这里有一个例子,一切正常,不知道为什么人们会感到困惑。 https://dotnetfiddle.net/BSm1Pz ,具有目标对象突变的 v2:https://dotnetfiddle.net/DGkAgv

最佳答案

不,BCL 中没有任何内容支持这一点。它是一个比基础库更好地留给应用程序开发人员的实现细节。

一些注意事项:

  1. Structs should be immutable
  2. 您可能要考虑存储旧项目的副本,而不是对它的引用 - 可以从其他地方更改(参见:https://dotnetfiddle.net/HOqLuq)

关于c# - .Net 中是否有一个类来存储一个值和一个先前的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51537725/

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