Я нашел информацию на основе ответа Kevin Kenny, но я полагал, что отправлю его здесь для других.
документ WSDL А определяет сервисы как наборы сетевых оконечных точек или порты. В WSDL абстрактное определение конечных точек и сообщения разделяются от их конкретного развертывания сети или привязки формата данных. Это позволяет повторное использование абстрактных определений: сообщения, которые являются абстрактными описаниями данных, переданных, и типы порта, которые являются абстрактными наборами операций. Конкретные спецификации протокола и формата данных для конкретного типа порта составляют допускающую повторное использование привязку. Порт определяется путем соединения сетевого адреса с допускающей повторное использование привязкой, и набор портов определяет сервис. Следовательно, документ WSDL использует следующие элементы в определении сетевых служб:
Вы вообще не вызываете неявно ToString
. Нет перегрузки метода WriteLine
, который принимает строки после строки формата, он принимает только объекты.
Таким образом, вы не вызываете неявно ToString
, вы неявно преобразуете int
в объект
. Первый случай эквивалентен:
Console.WriteLine("val is {0}", (object)val);
Поскольку int
является типом значения, происходит упаковка.
Второй случай эквивалентен:
Console.WriteLine("val is {0}", (object)val.ToString());
Поскольку строка является ссылочным типом, ее приведение to object фактически не вызывает испускания какого-либо кода. Он просто соответствует типу с сигнатурой метода.
Потому что в первом случае вы передаете int
как объект
при вызове Console.WriteLine ()
функция. Это заставляет int
быть помещенным в рамку. Во втором методе вы вызываете ToString
напрямую, что позволяет избежать упаковки и передает строку
в WriteLine
, который уже является ссылочным типом.
В первом вызове вообще нет вызова .ToString. Вместо этого вы вызываете функцию Console.WriteLine (object). Первый параметр имеет тип int и должен быть заключен в рамку, чтобы соответствовать объекту типа. Позже внутри WriteLite для объекта будет вызываться .ToString.