You could use the following generic extension method,
public static Nullable TryParse(this string input) where TSource : struct
{
    try
    {
        var result = Convert.ChangeType(input, typeof(TSource));
        if (result != null)
        {
            return (TSource)result;
        }
        return null;
    }
    catch (Exception)
    {
        return null;
    }
}
The following call will return the nullable parsed type.
string s = "510";
int? test = s.TryParse();
//TryParse Returns 510 and stored in variable test.
string s = "TestInt";
int? test = s.TryParse();
//TryParse Returns null and stored in variable test.