哪种编程实践更好,为什么?
我有这样一个类:
class data {
public double time { get; internal set; }
public double count { get; internal set; }
public average_count { ... }
}
其中 average_count 应该是 read_only 并给出计数/时间的计算。
将访问器写成这样更好吗:
public average_count { get {
return (time == 0) ? 0 : (count / time);
}}
或者我应该这样做:
private _avg_count;
public average_count {
get
{
return _avg_count;
}
internal set
{
return _avg_count;
}
}
在时间和计数集访问器中更新 _avg_count 的位置?
看起来第一个更容易阅读,但如果经常访问 average_count 可能会更慢。编译器优化是否会使差异变得微不足道?
最佳答案
即时执行此操作会产生更具可读性的代码。预先计算可能会提高性能,但只有在 (a) 有必要并且 (b) 您已经进行分析并且它有所作为时才应该这样做。
底线是,只有在绝对必要时才应该为了性能而牺牲可读性和可维护性。
关于c# - C# 访问器应该使用私有(private)变量还是即时计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3559478/