連続して複数回アクセスする場合は、オブジェクト プロパティを保存した方がよいでしょうか? 以下は、オブジェクトのプロパティを連続して複数回取得し、それを処理する 2 つの方法のかなりばかげた例です。オブジェクトのプロパティに連続して複数回アクセスする場合、例は良い方法ですか? それとも、コンパイラはとにかくこれらの種類のものを最適化でき、ほとんど同じ結果につながるでしょうか?
private string example1()
{
string prop = SomeObject.prop;
StringBuilder builder = new StringBuilder();
for(int i = 0; i < 9000; i++;){
builder.Append(prop);
}
return builder.ToString();
}
private string example2(){
StringBuilder builder = new StringBuilder();
for(int i = 0; i < 9000; i++;){
builder.Append(SomeObject.prop);
}
return builder.ToString();
}
}
最初の例が優れている場合、オブジェクトがプロパティを返す前に何かを行うことが懸念される場合は、それが優れていますか?
class SomeObject{
public string prop
{
get {
//Do something wierd
return _prop;
}
set {
_prop = value;
}
}
}
それとも、すぐに返却されることがわかっている場合でも使用した方がよいでしょうか。コンパイラがそのようなことを自動的に最適化するのに十分賢いかどうかに興味があります。