Howto someFunction (Список <acceptDifferentTypesHere>список) {/ * Отражение вещей * /} - PullRequest
0 голосов
/ 18 января 2012

Я хочу создать DataTables из списков.

т. Е. Я получил два списка

List<typeA> listA = new List<typeA>(); 
List<typeB> listB = new List<typeB>();

как я могу получить функцию, принимающую оба (или больше чем эти) Списка с другим типом элемента?

private void someFunction(List<acceptDifferentTypesHere> list)
{ 
   /*elementwise reflection stuff*/
} 

Любая помощь была бы хороша,

Harry

Ответы [ 2 ]

6 голосов
/ 18 января 2012
private void someFunction<T>(List<T> list)
{ 
   /*elementwise reflection stuff*/
}

Используется следующим образом

someFunction<typeA>(listA);
someFunction<typeB>(listB);
1 голос
/ 18 января 2012

В случае, если вы хотите сделать больше с разными типами (методы доступа, свойства).

 private void someFunction<T>(List<T> list) where T : MyType, new()
    { 
       /*elementwise reflection stuff*/

       var instance = new T();
       Type type = instance.GetType();
       instance.MyMethod();    
    } 

    public class MyType
    {        
       public void MyMethod()
       {

       }
    }

вы можете расширить это .. (например, использовать MyType как обобщение типов A и typeB .. и т.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...