Geo*_*kov 1 c# getter setter properties
我担心人们总是使用getter-setter模式:
public int MyVariable { get; private set; }
public void SomeFunction(){
MyVariable = 10;
}
Run Code Online (Sandbox Code Playgroud)
据我所知,编译为:
private int myVariable;
public int GetMyVariable(){
return myVariable;
}
private void SetMyVariable(int value){
myVariable = value;
}
public void SomeFunction()
{
SetMyVariable(10);
}
Run Code Online (Sandbox Code Playgroud)
如果频繁使用,它不会影响程序的性能吗?这样做是不是更好:
private int myVariable;
public int MyVariable { get {return myVariable; } }
public void SomeFunction(){
myVariable = 10;
}
Run Code Online (Sandbox Code Playgroud)
首先,这种类型的优化通常会适得其反 - 尝试优化单个方法调用通常对任何现实世界都没有影响,测量性能.您可能最好将注意力集中在优化您在更高级别使用的算法上,而不是微观优化所使用的语言功能.
如果频繁使用,它不会影响程序的性能吗?这样做是不是更好:
不会.一旦编译,这将是有效的.
此外,在发布版本中,JIT编译器通常会完全优化get和set方法,完全内联它们.这将有效地使其执行与使用公共字段完全相同,并且具有与直接成员访问相同的性能.
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |