是否需要初始化一個StringBuilder變量來讓string.empty說,如果你最終沒有追加任何東西並需要返回一些東西?使用前設置StringBuilder?
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或者我會過度(做兩次相同的工作)並且像我擁有它一樣好嗎?
沒有冒犯,但你的代碼就在那裏......只是測試它比寫這個問題要快。 – 2010-06-29 04:13:09