Есть ли способ определить тип возвращаемого значения метода программно? - PullRequest
0 голосов
/ 09 ноября 2011

Я не имею в виду перегрузку.Это может включать новые Type s классов, которые я еще не создал.

РЕДАКТИРОВАТЬ: Я хочу создать метод, который будет возвращать значение типа, который он получает в качестве параметра.Я могу получить параметр типа object, но я не хочу возвращать его таким образом и затем приводить, я хочу, чтобы само возвращаемое значение было того же типа, что и параметр.

Ответы [ 5 ]

8 голосов
/ 09 ноября 2011

Вы можете использовать отражение:

var returnType = typeof(SomeClass).GetMethod("SomeMethodName").ReturnType;
3 голосов
/ 09 ноября 2011

Вы можете создать универсальный метод, который возвращает тип, который будет определен.Если вы правильно объявляете свои новые классы, они должны работать.

Есть несколько способов сделать это, поиск возвращаемый универсальный тип c # вызывает несколько различных способовсложность.По сути, у вас есть:

public T DoStuff<T>()
{
...
}

, однако "..." - это бит, который зависит от вашего приложения.

2 голосов
/ 09 ноября 2011

В зависимости от ваших обновлений желаемый метод будет выглядеть примерно так:

public T MyMethod<T>(T input)
{
  // DoSomething
  T result = default(T); // Create your instance of T here
  return result;
}
0 голосов
/ 09 ноября 2011

Вы можете использовать универсальный тип и универсальные методы, чтобы сделать это C # Универсальные методы

0 голосов
/ 09 ноября 2011

Да, это называется отражение .

Это должно ответить на ваш вопрос: http://msdn.microsoft.com/en-us/library/system.reflection.methodinfo.returntype.aspx

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