如何根据比较对象的新旧值来设置变量
本文关键字:新旧值 设置 变量 对象 何根 比较 | 更新日期: 2023-09-27 18:13:12
我正在寻找一个javascript手表功能的c#等效。我看到了一些不同的例子,但它们似乎比我的问题所需要的更多。我在web api控制器中设置了一个变量为"0"。如果对象中的值属性更改I,将变量更改为"1"
对象
public class parameters
{
public string foo { get; set; }
public string bar { get; set; }
public string widget { get; set; }
}
Api控制器 [HttpPost]
public string Post([FromBody]parameters parameters)
{
// initial value
string bChanged = "0";
//if any property value in parameters changes
string bChanged = "1";
}
您可以编写扩展方法来检查对象值是否更改。
public static class Extensionparameters
{
private static parameters _initialParameters;
public static void RegisterObject(this parameters parameters)
{
_initialParameters = parameters;
}
public static String CheckChanges(this parameters value)
{
if (value.bar != _initialParameters.bar || value.foo != _initialParameters.foo ||
value.widget != _initialParameters.widget)
{
return "1";
}
return "0";
}
}
那么在你的代码中你可以这样做
[HttpPost]
public string Post([FromBody]parameters parameters)
{
var initial = new parameters {bar = "a", foo = "a", widget = "a"};
initial.RegisterObject();
var changed = new parameters {bar = "v", foo = "a", widget = "a"};
string bChanged= changd.CheckChanges();
}