In C# how does one implement the ability to chain methods in one's custom classes so one can write something like this:
myclass.DoSomething().DosomethingElse(x);
etc...
Thanks!
Method Chaining is the practice of calling different methods in a single line instead of calling other methods with the same object reference separately. Under this procedure, we have to write the object reference once and then call the methods by separating them with a (dot.).
Applications of Method Chaining It is used to implement method cascading. It is also used to implement in fluent interfaces.
Chaining is a good solution to produce new instance from existing instances:
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);
}
}
Usage:
MyInt x = new MyInt(10).Add(5).Subtract(7);
You can also use this pattern to modify an existing instance, but this is generally not recommended:
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;
}
}
Usage:
MyInt x = new MyInt(10).Add(5).Subtract(7);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With