gpt4 book ai didi

c# - pass-by-ref 参数与包装器类型的长列表

转载 作者:行者123 更新时间:2023-11-30 15:12:26 26 4
gpt4 key购买 nike

我需要从一个函数中获取三个对象,我的直觉是创建一个新类型来返回三个引用。或者,如果 refs 是同一类型,我可以使用数组。然而,通过引用更容易:


private void Mutate_AddNode_GetGenes(ref NeuronGene newNeuronGene, ref ConnectionGene newConnectionGene1, ref ConnectionGene newConnectionGene2)
{

}

这显然没有错,但我对使用这种方法犹豫不决,我认为主要是出于美学和心理偏见的原因。实际上有什么充分的理由使用其中一种方法而不是其他方法吗?创建额外的包装器对象或将参数插入堆栈可能是性能问题。请注意,在我的特定情况下,这是 CPU 密集型代码。 CPU 周期很重要。

是否有更优雅的 C#3 方法的 C#2?

谢谢。

最佳答案

对于几乎所有的计算问题,您都不会注意到 CPU 的差异。由于您的示例代码中包含单词“Gene”,您实际上可能属于会引起注意的罕见代码类别。

创建和销毁对象只是为了包装其他对象会消耗一些性能(毕竟它们需要创建和垃圾收集)。

从美学上讲,我不会创建一个对象只是为了将不相关的对象分组,但如果它们在逻辑上属于一起,那么定义一个包含对象就完全没问题了。

关于c# - pass-by-ref 参数与包装器类型的长列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263192/

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