Hipoteticamente, seria útil para mim fazer isso:
foo.GetColumnValues(dm.mainColumn, int)
foo.GetColumnValues(dm.mainColumn, string)
onde o método GetColumns chamará um método diferente dentro, dependendo do tipo passado.
Sim, eu poderia fazê-lo como uma bandeira booleana ou similar, apenas me perguntava se havia uma maneira de talvez passar por isso e depois perguntar:
typeof (arg [1]) ou similar ...
Eu também poderia substituir o método, usar genéricos, etc. - eu sei que existem diferentes maneiras de fazer isso, fiquei curioso para saber se isso era possível.
foo.GetColumnValues<int>(dm.mainColumn)
pode ser o caminho a percorrer.