作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
早上好
假设我有一个类 ClassA
,一个运算符 +
将两个 ClassA
类型的对象相加,一个来自 的隐式转换int
到 ClassA
,并且我想重载运算符 ++
...假设 +
的代码相当长,但是 ClassA
和 1
的总和是一个非常特殊的情况,哪个选项更好?
+
和已定义的隐式转换实现 ++
。1
即可简化很多代码。我的想法是 (2) 更好,因为它通过隐式转换保存了新 ClassA
对象的创建,这在 ++
时非常有用例如,在 for
循环中使用运算符。此外,速度是必须的。
非常感谢。
最佳答案
您已经回答了自己的问题。如果速度是必须的,那么选择第二个更快的选项(最好对其进行基准测试以确保它确实快得多)。
否则,请选择第一个选项,因为代码越少越好(并且保持 DRY 是双重的)。更少的代码意味着更少的潜在错误、更少的维护、更少的编写和更少的阅读。如果代码在很大程度上重复了另一部分代码,那么您必须在进行更改时使两者保持同步——这会带来麻烦,因为很容易忘记更新一个代码(即使您总是记得进行更新)对两个地方的更改,因为它们并不完全相同,所以有可能正确更新一个部分而错误地更新另一个部分)。
在做出最终决定之前,确保速度确实是必须的——你不想要 premature optimization .
关于c# - 这是避免不断创建对象的好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281169/
安装并修复我的 VS2015 实例后,我仍然无法让智能感知(服务器端)在我的 MVC View 中工作。当我在 session 中第一次打开 .cshtml 文件并找到 Activitylog 文件时
我是一名优秀的程序员,十分优秀!