Можно ли использовать динамический метод в C # 4 для возврата разных типов данных при каждом вызове? - PullRequest
3 голосов
/ 03 ноября 2011

Если у меня есть динамический метод в C # 4. Можно ли использовать его для возврата, например, в 1 вызове - в строке, в другом вызове в логическое значение, а в другом в вызове int?

Или этотип возвращаемого значения динамического метода, установленного после первого вызова во время выполнения?То есть, если при первом вызове метода он возвращает логическое значение, все ли последующие вызовы этого метода также должны возвращать логическое значение?

Ответы [ 2 ]

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

A dynamic метод может свободно изменять свои возвращаемые данные в любой точке по своему выбору. Например

class Example {
  private int m_count;
  public dynamic GetData() {
    switch(m_count++) {
      case 0: return 42;
      case 1: return "hello world";
      default: return new object();
    }
  }
}

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

1 голос
/ 03 ноября 2011

Любой объект может быть неявно преобразован в динамический тип, так что вы должны это сделать.Динамические в большинстве случаев функции типа object.

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