是否可以使用C#4中的动态方法在每次调用时返回不同的数据类型?
如果我在C#4中有一个动态方法。例如,在1次调用中,可以使用它返回字符串,在另一次调用中返回布尔值,在另一次调用中返回int值吗是否可以使用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
还是在第一次运行时调用之后设置了动态方法的返回类型?这意味着,如果我第一次调用该方法时,它返回一个布尔值,那么对该方法的所有后续调用是否也必须返回布尔值?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();
}
}
}
动态
类型化方法与具有对象
返回类型的方法差别不大。可以自由返回与对象
兼容的任何值。唯一的问题是确保方法的调用方可以处理各种值 任何对象都可以隐式转换为动态类型,因此您应该能够这样做。在大多数情况下,动态函数像typeobject
我喜欢C#4。谢谢你的回答!C#4似乎类似于VBScript 98;-)