gpt4 book ai didi

C# 模式匹配 Task 并获取它的值

转载 作者:行者123 更新时间:2023-11-30 14:05:44 24 4
gpt4 key购买 nike

我想知道如何模式匹配 Task<T> .更具体地给出了静态类型的变量object如何获得它的Result属性(property)。

基本上,给:

object obj = new Task<string>() // or maybe Task<IEnumerable<...>>

object result = obj... // obj.Result?

最佳答案

最简单的方法是使用动态类型:

dynamic obj = new Task<string>(); // etc
object result = obj.Result;

你总是可以检查是否 objTask首先是某种类型(使用非通用 Task 基类)。如果您真的非常想防范 Task 的用户定义子类除了Task<T> ,您可以自己通过反射(reflection)来完成所有事情 - 但它会做更多的工作。

我一般不喜欢动态类型,如果可能的话,我会尽量避免陷入这种情况,但这应该没问题。

关于C# 模式匹配 Task<T> 并获取它的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54336880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com