可以使用C#4中的动态方法在每次调用时返回不同的数据类型吗?

JL.*_*JL. 3 c# dynamic c#-4.0

如果我在C#4中有一个动态方法.它可以用于返回例如1次调用 - 一个字符串,另一个调用一个布尔值,另一个调用一个int吗?

或者是第一次运行时调用后动态方法集的返回类型?这意味着如果我第一次调用该方法它返回一个布尔值,那么对该方法的所有后续调用是否也返回布尔值?

Jar*_*Par 8

一个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();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

一个dynamic类型的方法比拥有一个方法有点不同的object返回类型.它可以自由返回任何兼容的值object.唯一的问题是确保方法的调用者可以处理各种值.