引用一个对象的成员和引用一个基类型的变量哪个效率高一些呢?
如:
obj.Member;//Member 是int类型
int i;
如果程序下文有好多引用的地方我该直接用obj.Member,还是用i=obj.Member,然后引用i呢?
小弟不才,请赐教。
例:
i=obj.Member
if(i>0)
{
Console.WriteLine(i.ToString());
}
.......
i....
.......
i....
.......
i....
.......ORif(obj.Member>0)
{
Console.WriteLine(obj.Member.ToString());
}
.......
obj.Member....
.......
obj.Member....
.......
obj.Member....
.......
如:
obj.Member;//Member 是int类型
int i;
如果程序下文有好多引用的地方我该直接用obj.Member,还是用i=obj.Member,然后引用i呢?
小弟不才,请赐教。
例:
i=obj.Member
if(i>0)
{
Console.WriteLine(i.ToString());
}
.......
i....
.......
i....
.......
i....
.......ORif(obj.Member>0)
{
Console.WriteLine(obj.Member.ToString());
}
.......
obj.Member....
.......
obj.Member....
.......
obj.Member....
.......
解决方案 »
- 自动计算listview一列的值
- 想学。net做网站给些建议
- (急急急!!!)为什么数据库连接失败!!!!
- 编辑dataGridView的单元格时怎样按ebter后换行啊?
- 很急!!各位大哥大姐!帮帮我这个新人把!在线等!
- 动态创建控件遇到的怪问题,控件多了,速度慢的厉害!请你帮我指招儿!
- VC#2005 EXPress 中如何设置括号自动匹配?
- 散分
- 未能找到类型或命名空间名称“CSharpWin"(是否缺少 using 指令或程序集引用?)
- 各位大哥有没有漂亮的字体控件,谢谢
- 求助~! 实现如UC上的语音通讯和会议的功能
- 子线程与主线程的交互,请教!`````````````````````````````
如果你的Member是字段,则无所谓,如果是属性就慢。
因为属性的访问实际上是调用get方法。方法调用就要创建堆栈,自然会慢很多。但如果是成员变量(字段)。就没差别。
{
public Value = 0;
private n = 0;
public Member
{
get{return n;}
set{n = value;}
}
}MyClass obj = new MyClass();
obj.Value是直接访问内存,速度很快。
obj.Member是转为调用get_Member方法,调用的时候创建堆栈,获得结果。
int i = obj.Member;//不是引用,是复制,值类型是复制一个副本的,i的修改不影响obj.Member
i的访问和obj.Value的访问方式以及效率是一样的。
{
public Value = 0;
private n = 0;
public Member
{
get{return n;}
set{n = value;}
}
}MyClass obj = new MyClass();
obj.Value是直接访问内存,速度很快。
obj.Member是转为调用get_Member方法,调用的时候创建堆栈,获得结果。
int i = obj.Member;//不是引用,是复制,值类型是复制一个副本的,i的修改不影响obj.Member
i的访问和obj.Value的访问方式以及效率是一样的。---------------------------
忘记加格式了。这样直观一点。
使用属性不是在CLR时,实际是以内联的方式进行的吗?访问方法实际被转换为代码的执行。
难道这样会降低执行效率吗?