gpt4 book ai didi

C# - 你需要像在 JavaScript 中那样缩短查找链吗?

转载 作者:太空狗 更新时间:2023-10-30 00:17:31 26 4
gpt4 key购买 nike

我有一个具有公共(public)属性的类。在单个函数中,我引用此属性大约 30-40 次。

  this.MyProp; 

在函数中定义一个局部变量会不会更好,

 string myProp = this.MyProp;

这样做之后 - 在函数中我缩短了查找链...所以我只需要引用 myProp,而不是 this.MyProp。

在 JavaScript 中,这种查找的缩短确实提高了性能。在 C# 中会更好/更差吗?因为显然,我还需要创建另一个本地字符串变量。

最佳答案

从纯粹的性能角度来看,这取决于媒体资源在做什么。如果 MyProp getter 只返回一个私有(private)字段,那么开销是完全无关紧要的。事实上,除非您显然正在做一些重要的事情,比如一些巨大的枚举或调用数据库,否则这无关紧要。担心这个是微观优化。

不过,请务必注意属性的用途,即强制通过封装的例程访问值以确保一致性。如果您试图绕过它,您的代码将面临更大的错误风险。

来自@DavidAndres 的评论:

根据惯例,属性通常不应在 getter 或 setter 中做任何实质性的事情。所以我想说,如果您只是通过反射器或文档或查看您自己的代码来验证该属性是否运行良好,这无关紧要。在验证有必要后,处理显然需要本地化值的情况应该是边缘情况。

编辑:明确地说,我不建议您出于任何性能原因通常避免局部值。作为@Guffa注意到影响是微不足道的无论哪种方式。我要指出的是,属性通常是属性是有原因的,默认情况下访问值应该通过属性。

关于C# - 你需要像在 JavaScript 中那样缩短查找链吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1415763/

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