Насколько я знаю, int.TryParse(string, out int) существует с Framework 2.0. Таким образом, int?.
Есть ли причина использовать параметр out вместо того, чтобы возвращать int? с HasValue, установленным в true of false, в зависимости от способности конвертировать?