(string)obj
передает obj
в string
. obj
уже должен быть string
для этого. obj.ToString()
получает строковое представление obj
, вызывая метод ToString()
. Это obj
, когда obj
является string
. Итак, в вашем конкретном случае оба эквивалентны.
Обратите внимание, что string
является ссылочный тип (в отличие от типа значения ). Таким образом, он наследуется от объекта, а никакой бокс никогда не встречается.