Есть ли способ вернуть анонимный тип из метода? - PullRequest
60 голосов
/ 25 августа 2009

Я знаю, что не могу написать такой метод, как:

public var MyMethod()
{
   return new{ Property1 = "test", Property2="test"};
}

Я могу сделать это иначе:

public object MyMethod()
{
   return new{ Property1 = "test", Property2="test"}
}

но я не хочу делать второй вариант, потому что, если я это сделаю, мне придется использовать отражение.

<ч />

Почему я хочу это сделать:

Сегодня у меня на странице aspx есть метод, который возвращает данные в качестве результата, и я не могу изменить его , я пытался преобразовать этот DataTable в метод Anonymous со свойствами, с которыми я хочу работать , Я не хотел создавать класс только для этого, и, поскольку мне нужно будет выполнять один и тот же запрос более одного раза, я подумал, что создать метод, который возвращает анонимный тип, будет хорошей идеей.

Ответы [ 11 ]

2 голосов
/ 25 августа 2009

Извините, вы действительно не должны этого делать. Вы можете взломать его с помощью отражения или с помощью универсального вспомогательного метода, возвращающего тип для вас, но это действительно работает против языка. Просто объявите тип, чтобы было понятно, что происходит.

...