Код, найденный в PresentationCore.dll
(.NET4 WPF) от ILSpy:
// MS.Internal.PresentationCore.BindUriHelper
internal static string UriToString(Uri uri)
{
if (uri == null)
{
throw new ArgumentNullException("uri");
}
return new StringBuilder(uri.GetComponents(uri.IsAbsoluteUri ? UriComponents.AbsoluteUri : UriComponents.SerializationInfoString, UriFormat.SafeUnescaped), 2083).ToString();
}
Возвращаемый тип uri.GetComponents
равен string
, почему метод не вернул значение string
вместо того, чтобы обернуть его в StringBuilder(string).ToString();
Это по дизайну? Какова была бы причина для этого в общем смысле? Будет ли это уменьшать выделение или улучшать сбор мусора или использоваться для обеспечения безопасности потоков?