gpt4 book ai didi

c# - 从 Action 中获取对象

转载 作者:行者123 更新时间:2023-12-01 22:12:47 25 4
gpt4 key购买 nike

我有一个类在其构造函数上执行操作。我希望类字段 _options 值成为该操作的值。

我尝试使用:

_options = options;

但这不编译。完整代码为:

public class PortableObjectTemplate {

private PortableObjectTemplateOptions _options { get; set; }

public PortableObjectTemplate(Action<PortableObjectTemplateOptions> options) {
_options = options;
}
}

我正在尝试能够将此类用作:

PortableObjectTemplate pot = new PortableObjectTemplate(x => {
x.SearchPath = "/";
x.BlackList = "*.cs";
});

我该怎么做?

最佳答案

如评论中所述Action是一个完全不返回任何内容的代表(或 void )。当您希望您的代表返回任何内容时,您应该使用 Func<T> 而是执行它:

public PortableObjectTemplate(Func<PortableObjectTemplateOptions> options) {
_options = options();
}

当然你应该检查是否options不是 null在执行它之前(C#6 向上):

_options = options?.Invoke();

或者:

options = options == null ? default(PortableObjectTemplate) : options();

关于c# - 从 Action 中获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46886988/

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