社区
C#
帖子详情
怎样提高一个类引用另外一个类的属性的效率
fallincloud
2011-10-18 11:16:24
在一个类(A)中有一个循环需要使用另外一个类(B)的属性(已有个静态的Instance实例),
1.在循环中直接使用那个类(B)的属性
2.还是在循环的外头 放一个局部变量存储那个属性的值
3. 或者还是在该类(A)中使用一个static全局变量存储那个类的属性的值
哪个效率更高?或者还有更好的办法没。(类A会有大量的实例)
当B的属性分别是值类型和引用类型时又有什么区别?
...全文
101
4
打赏
收藏
怎样提高一个类引用另外一个类的属性的效率
在一个类(A)中有一个循环需要使用另外一个类(B)的属性(已有个静态的Instance实例), 1.在循环中直接使用那个类(B)的属性 2.还是在循环的外头 放一个局部变量存储那个属性的值 3. 或者还是在该类(A)中使用一个static全局变量存储那个类的属性的值 哪个效率更高?或者还有更好的办法没。(类A会有大量的实例) 当B的属性分别是值类型和引用类型时又有什么区别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
stonespace
2011-10-18
打赏
举报
回复
显然最可靠的是1,无论如何都不会出错,效率稍低,但只要不是瓶颈,1一般不会比23慢,这个你可以通过测试来验证,
如果B属性不会再循环过程中变化,2也可取,很多情况下这也可以得到保证,
不过实测1效率不低的话,应该用1,最简单可靠,
stonespace
2011-10-18
打赏
举报
回复
其实大多数情况下,你这三种方法效率都差不多,
当然理论上3效率最高,1效率最低,因为1调用B的属性,属性是一个方法,涉及调用压栈退栈等操作,1比2/3效率都低,2效率和3接近或者一样,不过2需要在循环外存储这个值,需要分配空间,不过一般在栈中,
值类型和引用类型有区别,但区别不大,
但是你要注意,2和3是有风险的,不一定正确,取决于B的这个属性是不是一个常数,如果B的属性是常数,不会改变,那么23是绝对正确的,如果B的属性会变化,那么3就是错的,除非像2一样处理,在循环钱更新static变量的值,
B属性会变化的情况,2也可能是错的,这取决于B的属性会不会在循环过程中发生变化,
兔子-顾问
2011-10-18
打赏
举报
回复
2
bdmh
2011-10-18
打赏
举报
回复
如果那个属性是动态的,那就要不断的访问,如果是一次不变的,只需读取一次存下来就是了
PHP5 面向对象程序设计
PHP5有
一个
单重继承的,限制访问的,可以重载的对象模型. 本章稍后会详细讨论的”继承”... 有了更直接的对象模型,就拥有了附加的优势:
效率
提高
, 占用内存少,并且具有更大的灵活性. 在PHP的前几个版本中,脚本默认复制
C++ |
引用
变量
引用
传参的另
一个
好处 小结 2.
引用
作返回值 为何要返回
引用
返回
引用
时要注意的问题 小结 何时使用
引用
参数 1. 传递值而不修改值(尽量 const 修饰) 2. 需要修改原数据 实现方法(汇编层来看) 导语...
C++
引用
的详解
引用
的
一个
重要作用就是作为函数的参数。以前的C语言中函数参数传递是值传递,如果有大块数据作为参数传递的时候,采用的方案往往是指针,因为这样可以避免将整块数据全部压栈,可以
提高
程序的
效率
。但是现在(C++...
Java
类
继承
类
是Java中最基本的代码单元,它是一种用户自定义的数据
类
型,用于封装数据和方法。...我们可以通过创建对象来实例化
一个
类
,即在内存中分配空间来存储该
类
的实例,并调用其方法来操作实例的
属性
和行为。
详解C++中右值
引用
98中的
引用
概念 特性
引用
的使用场景 三种传参方式
效率
的比较 探索:
引用
的底层实现方式----->指针 ...为了
提高
程序运行
效率
,C++11中引入了右值
引用
,右值
引用
也是别名,但其只能对右值
引用
i...
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章