gpt4 book ai didi

C# 通过 Lambda 接受对象参数

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:03 25 4
gpt4 key购买 nike

我想使用 lambda 表达式将对象发送到参数。

如果我有这样的设置类:

public class Settings() {
public string Name {get;set;}
public string Whatever {get;set;}
}

还有一些其他的方法,其参数是一个设置类:

public object GenerateIt(Settings settings) {
// stuff here
}

我想这样调用它:

myObject.GenerateIt(
s => {
s.Name = "this";
s.Whatever = "whatever";
}
)

我已经试过了,但效果不佳:

public object GenerateIt(Func<Settings> settings) { ... }

我也在尝试(根据当前答案)使用操作:

public object GenerateIt(Action<Settings> settings) { ... }

...这允许我(显然)以我喜欢的方式调用方法,但我似乎无法找到如何访问我传入的那些设置?

public object GenerateIt(Action<Settings> settings) {

Console.WriteLine(settings.Name); // nope

var s = settings(); // nope

???
}

(是的,我确实查阅了文档 - 如果之后我很清楚,我就不会再问了)

如“我想这样调用它”示例中所示,允许传递对象的正确机制是什么?谢谢

最佳答案

阅读文档。

Func<T> 返回一个T并且不带参数。你要Action<T> .

关于C# 通过 Lambda 接受对象参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39437382/

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