gpt4 book ai didi

C# 多个参数合二为一以消除参数传递

转载 作者:太空狗 更新时间:2023-10-29 18:08:59 24 4
gpt4 key购买 nike

我不知道这是否可行,但在我的一些单元测试中,我最终使用相同的参数初始化了不同的对象。我希望能够将这些参数存储在某个变量中,并只使用该变量初始化多参数对象构造函数,而不是这样做:

Thing thing1 = new Thing(arg1, arg2, arg3, arg4);
Thing thing2 = new Thing(arg1, arg2, arg3, arg4);
Thing thing3 = new Thing(arg1, arg2, arg3, arg4);

我可以做以下事情:

MagicalArgumentsContainer args = (arg1, arg2, arg3, arg4);
Thing thing1 = new Thing(args);
Thing thing2 = new Thing(args);
Thing thing3 = new Thing(args);

有没有什么方法可以在不覆盖 Thing 的构造函数的情况下获取一个列表,然后手动分解并从中提取参数?也许是一些 C# 语法糖?

最佳答案

我的意思是,有这个:

Func<Thing> f = () => new Thing(arg1, arg2, arg3, arg4);
Thing thing1 = f();
Thing thing2 = f();
Thing thing3 = f();
Thing thing4 = f();

小心closure semantics .

关于C# 多个参数合二为一以消除参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2044954/

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