여기 내 시나리오는,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;
}
그리고 내가 그것을 "ABC"
그러나 그 전시로 값을 반환
List<String> l_lstTest = new List<string> { "A", "B", "C" };
String l_strString = StringConcat(l_lstTest.Select(X => X).ToArray());
처럼 전화 드렸습니다 형식 오류없이 함수를 호출하면 오류가 발생합니다.
String l_strString = StringConcat(l_lstTest.Select(X => X));
변환없이 함수를 사용하는 방법은 무엇입니까?
주 1 :하여 XDocument Add
방법에서
- 그들은 params
처럼 사용하고 있지만, 형식 변환의 그러한 필요가 없다.
주 2 :
이 글의 목적은 단지 params
의 한계에 대해 자세히 알아 보려면, 문자열을 추가 할 수 없습니다.
고맙습니다 .... 게시 할 수 있습니까? 왜'for'loop 대신'Foreach'를 제안 했나요? 'Foreach'는 객체 타입입니다 .... 그래서 인덱스 타입 ('for') 루프에 비해 더 많은 시간이 걸릴 것입니다 ??? –
@Pramodh :'foreach'는 더 높은 수준의 추상화입니다. 코드는 더 깨끗해졌으며, 여러분이 달성하고자하는 것을보다 자세하게 표현합니다. 실제로, 배열에 대한'foreach' 루프는 어쨌든 배열 인덱서를 사용할 것입니다. 그러나 여러분은 문제가 발견 될 때까지 그 세부 수준에서의 성능에 대해서 신경을 써서는 안됩니다. 문자열 배열을 사용하기 때문에 큰 배열에서는 코드의 성능이 끔찍합니다 * foreach와 for의 차이는 비효율과 비교할 수 없습니다. –