Dynamic dispatch means , the process of programming language, calling a method is determined at the run time depending on the parameters type.Where as in static dispatch , every method is known at the compile time.
Dynamic expression says ” This operation will be resolved at run time.”
[C# CODE STARTS]
dynamic obj ;
dynamic str = "Test String";
obj = str.Length;
// prints System.Int32 and System.String respectively
[C# CODE ENDS]
Unlike [object] type , explicit casting is not needed here.
Also , if in the above example , we try to write str++; then it will not throw any error at compile time but will fail at run time as at run time its type is evaluated to be string and increment operator is invalid.