Цепочка является хорошим решением для создания нового экземпляра из существующих экземпляров:
public class MyInt
{
private readonly int value;
public MyInt(int value) {
this.value = value;
}
public MyInt Add(int x) {
return new MyInt(this.value + x);
}
public MyInt Subtract(int x) {
return new MyInt(this.value - x);
}
}
Использование:
MyInt x = new MyInt(10).Add(5).Subtract(7);
Вы также можете использовать этот шаблон для изменения существующего экземпляра, но обычно это не рекомендуется:
public class MyInt
{
private int value;
public MyInt(int value) {
this.value = value;
}
public MyInt Add(int x) {
this.value += x;
return this;
}
public MyInt Subtract(int x) {
this.value -= x;
return this;
}
}
Использование:
MyInt x = new MyInt(10).Add(5).Subtract(7);