c# - 从 Func<MyClass, object> 获取 "Object"返回类型

标签 c# reflection lambda expression

假设我定义了 Func 如下:

Func<MyClass, object> f = o => o.StringProperty;

Func<MyClass, object> f = o => o.Property.SomeMethod();

有没有办法在不专门调用的情况下获取实际返回类型?

最佳答案

你可以这样获取返回类型:

f.Method.ReturnType

但这将返回类型 object。如果你想获得 MethodString 或派生自 object 的东西,除非你调用方法。

实际上您可以,但这意味着您必须分解方法核心,然后分析它以查看该方法可以返回什么。但即便如此,也可能有许多不同的返回类型。

所以答案是:如果你想知道它返回一个对象,那么是的,你可以,否则不值得麻烦,最好找到另一种方法来做你需要的事情。

关于c# - 从 Func<MyClass, object> 获取 "Object"返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17836973/

相关文章:

java - 反射:如何比较未知类型的两个对象

python - python 中的静态 lambda

c# - 从模型状态/模型状态字典中获取键名?

c# - .NET 等同于将文件上传到 REST API 的 curl?

c# - .net c#4 中的 ConcurrentStack<T> 问题

java - Kotlin:javaSetter 方法未编译

c# - 接口(interface) C# 的类层次结构

reflection - Dart ,如何使用反射获取方法参数的通用类型?

java - 如何在 groovy 中声明方法引用?

.net - 如何使用 Moq 测试 lambda 函数?