int.Parse преобразует строку (string) в int (если может).
Convert.ToInt32 преобразует в int значение любого типа, из перечисленных здесь. boolean, double, float и т.д. А самое главное, может преобразовать экземпляр любого класса, реализующего IConvertible.
Если говорить о строках, то Convert.ToInt32 внутри всё равно использует int.Parse. Но есть нюанс:
Что происходит в этом кусочке кода ?
public static int ToInt32(String value) {
if (value == null)
return 0;
return Int32.Parse(value, CultureInfo.CurrentCulture);
}
Для неинициализированной строки int.Parse выбросит исключение, Convert.ToInt32 вернет 0.