gpt4 book ai didi

c# - 在没有引用的情况下构造对象?

转载 作者:太空宇宙 更新时间:2023-11-03 20:23:03 26 4
gpt4 key购买 nike

我几乎可以肯定这违背了 C# 的基本法则,但是是否可以通过引用构造项目的“数组”或“集合”?

如果做不到这一点,是否有任何其他方法可以在带参数的静态方法中构造复选框?

希望我的伪代码有意义(关于Construct2的一切)

CheckBox cb = null, cb2 = null;

Main()
{
Construct(ref cb);//works
Construct2(new []{ref cb, ref cb2});//isnt going to work!
}

static void Construct(ref CheckBox cb){
cb = new CheckBox();//works
}

static void Construct2(CheckBox[] cbs) { //
cbs[0] = new CheckBox();
cbs[1] = new CheckBox();
//for (int i = 0; i < cbs.Length;i++){
// cbs[i] = new CheckBox();
//}
}

最佳答案

你不能像那样传递一个 ref 变量数组。如果您希望能够像那样构造“成”多个变量,我认为您需要传入某种类型的 setter :

void Construct2 (params Action<Checkbox>[] cbas)
{
foreach (var cba in cbas) cba(new Checkbox());
}

Construct2(
(c) => cb = c,
(c) => cb2 = c);

关于c# - 在没有引用的情况下构造对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12300282/

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