Pretty much it only works with IConvertable types, the type has to match already, but I can remove this constraint to get rid of the if:

http://stackoverflow.com/questions/3847997/why-does-convert-changetype-take-an-object-parameter