我有像bellow这样的类,我只想让x在Foo方法中改变,而不是其他属性。我不能像下面的例子那样使用[Pure],因为它锁定了所有属性:
public class Test
{
private int x,y,z; //number of these properties is large
[Pure]
public void Foo()
{
//only x must be allowed to change
}
}除了x之外,我不想对所有其他属性使用类似的东西
Contract.Ensures(Contract.OldValue<int>(y) == y);
Contract.Ensures(Contract.OldValue<int>(z) == z);
...//and for other large number of properties有没有办法做到这一点?
发布于 2014-11-28 04:55:20
不幸的是,使用Contracts的标准方式找不到我。
但是你可以这样使用(这种方式有一些限制):
public class Test
{
public int x, y, z;//....
public void Foo()
{
x = FooBody();
}
[Pure]
private int FooBody()
{
int value = x;
//work with value as x
return value;
}
}发布于 2014-11-28 02:50:49
似乎在Contract类中没有实现此目的的方法。
https://stackoverflow.com/questions/27157855
复制相似问题