gpt4 book ai didi

oop - 为什么是 "Properties that return arrays are prone to code inefficiencies"?

转载 作者:行者123 更新时间:2023-12-04 04:27:37 25 4
gpt4 key购买 nike

我有一段代码可以处理存储在数据库中的客户。有一个对象Customer,它具有byte[]类型的两个属性:一个属性用于密码盐,第二个属性用于密码哈希。

使用FxCop检查代码,我发现它提示(CA1819,性能规则):

"Properties that return arrays are prone to code inefficiencies. Consider using a collection or making this a method. See the design guidelines for more information."



并建议:

"Change 'Customer.PasswordHash' to return a collection or make it a method."



我不太了解,我执行的代码效率低下是什么?

最佳答案

问题在于数组总是可变的。这意味着您不能在没有一个方法的情况下从一个方法返回一个:

  • 允许调用者弄乱您的内部状态
  • 首先创建一个副本

  • 如果使用集合,则可以围绕实际集合创建只读包装,然后将其返回-这样可以便宜得多。或者,如果将其更改为将降低调用速度的期望的方法。

    当然,如果您对调用方更改数据感到满意,那么数组将可以正常工作...

    关于oop - 为什么是 "Properties that return arrays are prone to code inefficiencies"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3324053/

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