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

是否可以使用C#4中的动态方法在每次调用时返回不同的数据类型?,c#,c#-4.0,dynamic,C#,C# 4.0,Dynamic,如果我在C#4中有一个动态方法。例如,在1次调用中,可以使用它返回字符串,在另一次调用中返回布尔值,在另一次调用中返回int值吗 还是在第一次运行时调用之后设置了动态方法的返回类型?这意味着,如果我第一次调用该方法时,它返回一个布尔值,那么对该方法的所有后续调用是否也必须返回布尔值?adynamic方法可以在其选择的任何点自由更改其返回数据。比如说 class Example { private int m_count; public dynamic GetData() { sw

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


还是在第一次运行时调用之后设置了动态方法的返回类型?这意味着,如果我第一次调用该方法时,它返回一个布尔值,那么对该方法的所有后续调用是否也必须返回布尔值?

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();
    }
  }
}

动态
类型化方法与具有
对象
返回类型的方法差别不大。可以自由返回与
对象
兼容的任何值。唯一的问题是确保方法的调用方可以处理各种值

任何对象都可以隐式转换为动态类型,因此您应该能够这样做。在大多数情况下,动态函数像type
object

我喜欢C#4。谢谢你的回答!C#4似乎类似于VBScript 98;-)