如何根据比较对象的新旧值来设置变量

本文关键字:新旧值 设置 变量 对象 何根 比较 | 更新日期: 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();
}