Aim*_*ast 22 .net c# string wpf stringbuilder
在找到的代码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();
}
Run Code Online (Sandbox Code Playgroud)
返回类型uri.GetComponents是string,为什么没有方法只返回string值而不是将它包装在一个StringBuilder(string).ToString();是这个设计?在一般意义上这样做的原因是什么?它会减少分配或改善垃圾收集还是用于线程安全?
我唯一能想到的是,如果传递到 stringBuilder 的第一个参数为 null,则 stringbuilder 将返回 string.empty 而不是 null (请参阅http://msdn.microsoft.com/en-us/library/zb91weab (v=vs.100).aspx )
虽然字符串可以为空...所以为什么要麻烦呢?!
自己进行检查并返回一个空字符串比新建 stringBuilder 实例要高效得多。
第二个参数只是字符串生成器应初始化为的建议大小...
对OP问题的评论是正确的,这似乎有点过分了。
| 归档时间: |
|
| 查看次数: |
519 次 |
| 最近记录: |