Первое, что следует отметить, это то, что каждый класс наследуется от объекта.
Приведение int к объекту использует Int32.
Приведение строки к объекту использует String.
Не существует неявного приведения из целого числа в строку, потому что они находятся в разных частях иерархии классов - одно никак не связано с другим.Тем не менее, поскольку string используется так часто для выходного объекта (и, следовательно, для всех его дочерних элементов), для удобства имеется метод ToString ().
Однако Convert написан специально для возможности преобразования, например, из одного типа в другой.Convert.ToBool (x) может анализировать "true" или "false" в логическое значение, и, как вы показали, он может преобразовывать целое число в строку - опять же, это действительно удобство, которое, вероятно, просто вызывает Int32.ToString () изнутри..