gpt4 book ai didi

c# - 如何获取可选参数的默认值?

转载 作者:行者123 更新时间:2023-11-30 22:18:17 25 4
gpt4 key购买 nike

我有一个带有可选参数的构造函数。 我想要一个表达式来调用该构造函数而不提供可选参数(我的意思是让对象使用参数的默认值构造)。

我在这里阅读 An expression tree may not contain a call or invocation that uses optional arguments 这是不可能的。

我是说

var ctorInfo = getIt;
var f = Expression.Lambda<Func<T>>(Expression.New(ctorInfo)).Compile();

System.TypeInitializationException 而失败。

好的,我将传递默认值。但是如何获取参数的默认值呢?

ctorInfo.GetParameters().Select(??

动机:学习目的,没有实际应用。

编辑:删除了 expression-tree 标签,因为它不在构建表达式的上下文中,通常也有效。

最佳答案

根据 the documentation for ParameterInfo.RawDefaultValue :

ctorInfo.GetParameters().Select( p => p.RawDefaultValue );

希望对你有帮助

编辑:更正属性,因为:

This property [DefaultValue] is used only in the execution context. In the reflection-only context, use the RawDefaultValue property instead.

关于c# - 如何获取可选参数的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16185124/

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