gpt4 book ai didi

c# - 这是避免不断创建对象的好习惯吗?

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

早上好

假设我有一个类 ClassA,一个运算符 + 将两个 ClassA 类型的对象相加,一个来自 的隐式转换intClassA,并且我想重载运算符 ++...假设 + 的代码相当长,但是 ClassA1 的总和是一个非常特殊的情况,哪个选项更好?

  1. 使用 + 和已定义的隐式转换实现 ++
  2. 重复部分代码,只需添加 1 即可简化很多代码。

我的想法是 (2) 更好,因为它通过隐式转换保存了新 ClassA 对象的创建,这在 ++ 时非常有用例如,在 for 循环中使用运算符。此外,速度是必须的。

非常感谢。

最佳答案

您已经回答了自己的问题。如果速度是必须的,那么选择第二个更快的选项(最好对其进行基准测试以确保它确实快得多)。

否则,请选择第一个选项,因为代码越少越好(并且保持 DRY 是双重的)。更少的代码意味着更少的潜在错误、更少的维护、更少的编写和更少的阅读。如果代码在很大程度上重复了另一部分代码,那么您必须在进行更改时使两者保持同步——这会带来麻烦,因为很容易忘记更新一个代码(即使您总是记得进行更新)对两个地方的更改,因为它们并不完全相同,所以有可能正确更新一个部分而错误地更新另一个部分)。

在做出最终决定之前,确保速度确实是必须的——你不想要 premature optimization .

关于c# - 这是避免不断创建对象的好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281169/

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