В C#, как делает одну реализацию способность объединить методы в цепочку в пользовательских классах, таким образом, можно записать что-то вроде этого:
myclass.DoSomething().DosomethingElse(x);
и т.д...
Спасибо!
цепи - это хорошее решение для создания нового экземпляра из существующих экземпляров:
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);
Для мусорного класса что-то вроде
class MyClass
{
public MyClass DoSomething()
{
....
return this;
}
}
Ваши методы должны возвращаться это
или ссылку на другой (возможно новый) объект в зависимости от именно то, что вы хотите достичь
DoSomething должен возвращать экземпляр класса с помощью метода DoSomethingElse.