這裏是我的情況下,爲什麼params不接受泛型?
函數:
public String StringConcat(params String[] parameter)
{
String l_strReturnValue = String.Empty;
for (Int32 l_nIndex = 0; l_nIndex < parameter.Length; l_nIndex++)
{
l_strReturnValue += parameter[l_nIndex];
}
return l_strReturnValue;
}
而且我稱它像
List<String> l_lstTest = new List<string> { "A", "B", "C" };
String l_strString = StringConcat(l_lstTest.Select(X => X).ToArray());
它返回的值是 「ABC」
但其表現錯誤如果我打電話功能沒有類型convrsion像
String l_strString = StringConcat(l_lstTest.Select(X => X));
那麼如何在不轉換的情況下使用該功能呢?
注1:
在的XDocument Add
方法 - 他們已經使用像params
,但有類型轉換的沒有這樣的需要。
注2:
這篇文章的目的是不添加字符串,只是想了解更多關於params
的限制。
謝謝....你可以請帖,爲什麼你建議'Foreach'而不是'for'loop。 'Foreach'是對象類型....因此與索引類型('for')循環相比,它會花更多時間? –
@Pramodh:'foreach'是一個更高層次的抽象 - 代碼更加清晰,並且表達了你想要更緊密地實現的內容。實際上,數組中的foreach循環無論如何都會使用數組索引器 - 但是,除非您發現存在問題,否則通常不應該關心該細節級別的性能。由於使用了字符串連接,你的代碼的性能很糟糕*對於大型數組,因爲使用了字符串連接,所以'foreach'和'for'之間的任何區別都是* nothing *與低效率相比。 –