Generalized Argument Parser in C#