For us it has cleaned up huge lines very hard to read and understand code into one line that read like a sentence. Something like, new rPicker ayInterior. Leather.HeatedSeats Vs Something like New baru, dels. I know this is contrived example but say you have the following classes. Public Class Location, private _x As Integer 15, private _y As Integer 421513, public Function X As Integer Return _x, end Function, public Function X(ByVal value As Integer) As Location _x value, return Me, end Function, public Function Y As Integer Return _y, end Function, public Function. Public Class Dummy, private _locA As New Location public Sub New _locA. X(1337) End Sub, end Class vs, public Class Dummy, private _locC As Location New Location.X(1337 end Class. This is how I've been using chaining, and typically my methods are just for configuration, so they are only 2 lines long, set a value, then Return Me. Don't say : Eat more fats. Do say : Add fats with some nutritional value to the foods you already eat. Try olive oil, butter, avocado, and mayonnaise. Try not to chain between classes Make routines specifically for chaining Do only ONE thing in a chaining routine Use it when it improves readability Use it when it makes code simpler.
There is also the concern that a routine would return invalid data, thus so far I've only used chaining when I'm returning the same instance being called. As was pointed out if you chain between classes you make debuging harder (which one returned null?) and can increase dependencies coupling among classes.