Rumah > pembangunan bahagian belakang > C++ > Mengapa Item Senarai Saya Ditimpa Semasa Menambah Berbilang Objek?

Mengapa Item Senarai Saya Ditimpa Semasa Menambah Berbilang Objek?

Linda Hamilton
Lepaskan: 2025-01-19 20:23:10
asal
672 orang telah melayarinya

Why Are My List Items Overwritten When Adding Multiple Objects?

Timpa Nilai Senarai Semasa Penambahan Berbilang Item

Isu:

Menambah berbilang item pada senarai menyebabkan semua item senarai ditimpa dengan nilai item terakhir yang ditambah. Ini berlaku tanpa mengira nilai awal item.

Punca:

  • Tugasan Berasaskan Rujukan: Dalam konteks berorientasikan objek, menghantar objek melalui rujukan bermakna sebarang pengubahsuaian sifat menjejaskan objek asal.
  • Penggunaan Semula Objek: Kod ini berkemungkinan menggunakan semula contoh objek tunggal dalam gelung. Tugasan seterusnya menimpa sifat objek, membawa kepada tingkah laku tulis ganti yang diperhatikan.

Penyelesaian:

Penyelesaian melibatkan mencipta contoh objek baharu untuk setiap lelaran:

<code class="language-csharp">foreach (string t in tagList)
{
    Tag _tag = new Tag(); // New Tag object for each iteration

    _tag.tagName = t;
    tags.Add(_tag);
}</code>
Salin selepas log masuk

Alternatif: Menggunakan Struktur

Bertukar daripada kelas kepada struct menghapuskan masalah tulis ganti kerana:

  • Hantaran Berasaskan Nilai: Struktur ialah jenis nilai; mereka lulus dengan nilai.
  • Penyalinan Objek: Apabila struct diluluskan, salinan dicipta, bukan rujukan. Setiap operasi Add mencipta contoh struct baharu, mengekalkan nilai unik.

Atas ialah kandungan terperinci Mengapa Item Senarai Saya Ditimpa Semasa Menambah Berbilang Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan