Инициализировать универсальный объект с неизвестным типом - PullRequest
3 голосов
/ 22 декабря 2008

Как я могу инициализировать список, содержащий общие объекты, типы которых могут быть разными?

Например, у меня есть следующее:

this.Wheres = new List<Where<>>();

Как вы знаете, <> недопустимый синтаксис. Однако иногда тип, передаваемый в Where, будет строкой, а иногда - DateTime и т. Д. Я пытался использовать объект в качестве инициализированного типа, но это тоже не работает.

Ответы [ 2 ]

10 голосов
/ 22 декабря 2008

Ну, вы на самом деле недостаточно указали контекст (что такое SqlWhere?), Но обычно вы используете параметр типа:

public class Foo<T>
{
   private IList<T> wheres;

   public Foo()
   {
       wheres = new List<T>();
   }
}

Если вы хотите, чтобы одна коллекция содержала несколько не связанных типов значений, вам придется использовать List<object>

1 голос
/ 22 декабря 2008
this.Wheres = new List<Object>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...