我有一个带有以下签名的方法:
async Task<object> Foo(object a, object b);
如果我这样使用它:
dynamic c = new ExpandoObject();
var x = await Foo(new object(), c);
编译器使用dynamic
作为x的推断类型。
var x = await Foo(new object(), (object)c);
编译器使用object
作为x的推断类型。
由于方法返回类型的返回类型为object
,所以我都希望两者都使用Task<object>
作为推断类型。谁能提供从方法参数推断类型背后的原因的任何见识?