如何基于比较对象的新旧值来设置变量

时间:2015-09-17 12:30:17

标签: c# asp.net-web-api compare asp.net-web-api2

我正在寻找一个j#watch功能的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";
    }

1 个答案:

答案 0 :(得分:2)

您可以编写扩展方法来检查对象值是否已更改。

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();

}