2012-05-16 2 views
1

C# List 데이터 형식을 매개 변수로 사용하여 함수를 만들려고합니다. 이List를 매개 변수로 사용하는 오버로드 함수

List<Class1> obj1 = new List<Class1>(); 
foo(obj1); 

List<Class2> obj2 = new List<Class2>(); 
foo(obj2); 

나는 이런 식으로 뭔가를 할 수처럼

public void foo(List<Something> obj) 
{ 
... 
} 

하지만, 내 말은, 함수에 목록 유형의 anykind를 통과하고 싶은가? 이 작업을 수행하는 방법? 미리 감사드립니다.

+2

[일반 방법] 사용 (http://msdn.microsoft.com/en함으로써 추가로 간소화 될 수있다 – Reniuz

답변

3

generics을 사용하십시오.

public void foo<T>(List<T> obj) 
{ 
... 
} 

foo<Class1>(new List<Class1>()); 
foo<Class2>(new List<Class2>()); 

같이 상기 generics type inference

foo(new List<Class1>()); 
foo(new List<Class2>()); 
+1

형식 유추가 형식 인수를 처리하므로 'foo (new List ())'를 호출 할 수 있습니다. –

+0

감사합니다. 나는 타입 유추에 대해 몰랐다. 귀하의 [블로그] (https://msmvps.com/blogs/jon_skeet/archive/2008/08/06/making-themost-of-generic-type-inference.aspx)를 살펴보십시오. – Tilak

4

foo 메소드에 일반적인 인수를 추가하십시오.

public void foo<T>(List<T> obj) 
{ 
... 
} 

당신은 그들 here에 대한 자세한 내용을 확인할 수 있습니다.