参照型をメソッドに値渡ししたときに値をインスタンスに再割当てできることを示す例を複製しようとしています渡された型自体は再割り当てしません。これはAndrew Troelsenの本のものです。渡し型参照型を値で渡しますが、インスタンス変数がメソッドによって再割り当てされていません
Rectangle r1 = new Rectangle("Numero", 10, 10, 10, 10);
Rectangle r2 = new Rectangle();
ChangeRect(r1);
Console.WriteLine(r1.top);
コンストラクタの矩形内の2番目の引数は、「トップ」変数(int型)です: ここではコードです。
ChangeRect方法は次のとおりです。
static void ChangeRect(Rectangle e)
{
e.top = 1;
e = new Rectangle();
}
私はこれを実行すると、私はr1.topの値が1に変更することを期待、しかし、デフォルトコンストラクタを持つ新しいオブジェクトへのR1オブジェクトの再割り当て無視される。 しかし、r1でChangeRect()メソッドを呼び出した後、r1.topの値を表示すると、10が表示され続けます。 何が欠けていますか?
[mcve]を入力してください。私はあなたが私たちに示していないコードに問題があると思う。 –
なぜ再割り当てが無視されると思いますか?私が最後にチェックしたのは、オブジェクトを変更したい場合は値ではなく参照でオブジェクトを渡す必要があるということです。 – VTodorov
「長方形」とは何ですか?どのように定義されていますか? – David