プライベート「読み取り専用」インスタンス メンバー変数とプライベート インスタンス メンバー変数を読み込もうとすると、速度に違いはありますか?
アップデート
この質問の意図は、理解を深めることと、理論的な目的のためです。
性能差はありません。ただし、「const」に変更すると、パフォーマンスが向上します。このすべては、この素晴らしい記事で精巧に説明されています。
次のコードがあるとします。
void Main()
{
Test t = new Test();
t.Check();
}
public class Test
{
private readonly int num = 10;
private int num1 = 50;
public void Check()
{
int a = num1;
int b = num;
}
}
生成された MSIL コードは次のとおりです。
IL_0001: newobj UserQuery+Test..ctor
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: callvirt UserQuery+Test.Check
Test.Check:
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldfld UserQuery+Test.num1
IL_0007: stloc.0
IL_0008: ldarg.0
IL_0009: ldfld UserQuery+Test.num
IL_000E: stloc.1
IL_000F: ret
Test..ctor:
IL_0000: ldarg.0
IL_0001: ldc.i4.s 0A
IL_0003: stfld UserQuery+Test.num
IL_0008: ldarg.0
IL_0009: ldc.i4.s 32
IL_000B: stfld UserQuery+Test.num1
IL_0010: ldarg.0
IL_0011: call System.Object..ctor
IL_0016: nop
IL_0017: ret
したがって、 readonly は、プログラミングの概念を表現するために使用される言語固有のキーワードであることがわかります。
読み取り専用ルールを適用するのは、コードをビルドするときのコンパイラです。
生成されたコードの観点からは、違いはありません。–</p>