使用前设置StringBuilder?

时间:2010-06-29 04:03:43

标签: c#

是否需要初始化StringBuilder变量以允许说string.empty,以防你最终没有附加任何内容并需要返回一些内容?

    public static string ToSemiColonList<T>(this IEnumerable<T> list, Func<T, string> func)
    {
        StringBuilder sb = new StringBuilder();

        foreach (T item in list)
        {
            if (sb.Length > 0)
                sb.Append(";");

            string elem = func(item);
            sb.Append(elem);
        }

        return sb.ToString();
    }

在这种情况下,它可能永远不会进入foreach。所以我的猜测是,因为方法范围中的每个局部变量都在C#中设置为无值,将其设置为空字符串,因为如果没有命中这个foreach,我们需要回馈一些东西。

也许最好检查一下stringbuilder长度然后是零,返回string.empty还是我要过火(做同样的工作两次)并且它很好,就像我有它一样?

1 个答案:

答案 0 :(得分:15)

StringBuilder对象的默认初始化设置为string.Empty

默认容量为16 - 有关SO的类似(但不同)问题,请参阅here