@AMissico has pointed out my earlier mistake - apparently you can do this in VB.NET with an implicit assignment.
I'd still consider this a crutch, and if I ever found myself needing to do it, I'd start asking why the program is structured in such a way that makes it necessary.
If you need this level of debug information, it is a better practice to put it in your program logic instead - that way, when future maintenance programmers have to debug the same code path, they'll have all of the same detailed information without having to "interrogate" deeply-nested object graphs. Instead of writing MyObject.Function1().Function2().Function3()
, write:
var first = MyObject.Function1();
var second = first.Function2();
var third = second.Function3();
Then you can step through the actual program logic in a debugger instead of writing an entire test script in the Immediate window.
You might also consider writing your own Debugger Visualizer if you need to get a detailed representation of a complex object or hierarchy.