Итак, вы получаете ошибку времени компиляции, верно?Проблема в том, что int явно не преобразуется в строку.
Так что
(string)a
не является допустимым кодом, но
a + ""
означает, что код будет работать, потому чтоон в основном переводится в
a.ToString() + ""
Таким образом, int преобразуется в строковое значение