C# does support a form of multiple dispatch, through the dynamic keyword. Used it myself for writing a parser.
https://shawnhargreaves.com/blog/visitor-and-multiple-dispat...