有什么方法可以在运行时创建Task<T>
的类型,而T
是仅在运行时已知的类型?我想使用Task<T>
的默认值创建T
,但是在获取T
的默认值并使用Task.FromResult(default_value)
之后,我得到的是Task<object>
,而不是{{ 1}},因为在大多数情况下,默认值为null。有解决这个问题的想法吗?
Task<T>
答案 0 :(得分:0)
泛型用于编译时类型检查。您无法在运行时定义<T>
。最好的办法是Task<object>
,将其await
强制转换为想要的类型,或者转换为Task<dynamic>
。
我不确定为什么要这么做。
如果您可以在编译时提供泛型类型,则可以这样做
public Task<T> GetDefaultTask<T>() {
return Task.FromResult(default(T));
}