書くとき
Console.Write(new Class().Work)
「新しいクラス」はまだ参照を生成しますか?
スタック上の値はどうなりますか? (住所)
もちろん、それは参照を生成します。それClass
を呼び出すWork
には、のインスタンスが存在する必要があります。それを保持する変数はありません。
スタックについて何を意味するのかわからない。
参考にさせていただきます。あなたの質問の新しいクラス。値は、クラスを指しているスタック アドレスの HEX 値になります。したがって、.NET では、参照を介して参照している場合、アドレスがスタックに格納されるため、アクセスしたいときに、コンパイラはどの HEX 値を見つけてから、適切なオブジェクト (クラス、関数など) をフェッチします。ヒープ。
つまり、newobj、callvirt、call
はい、オブジェクトが作成されます - 参照はスタック上にあり、callvirt によって消費されます (呼び出し用のメソッドの戻り値を残します)
変数は必須ではありませんが、1 つでも同じように有効です。