Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh mengubah suai nilai dalam senarai struktur dalam C#?

Bagaimanakah saya boleh mengubah suai nilai dalam senarai struktur dalam C#?

DDD
Lepaskan: 2025-01-02 17:28:39
asal
1013 orang telah melayarinya

How Can I Modify Values Within a List of Structs in C#?

Menukar Nilai dalam Senarai Struktur

Apabila bekerja dengan senarai struktur, seseorang mungkin menghadapi ralat semasa cuba mengubah suai elemen. Isu ini timbul disebabkan oleh semantik jenis nilai bagi struct, yang mencipta kejadian berasingan untuk setiap pembolehubah jenis nilai. Akibatnya, apabila elemen struct disalin ke dalam pembolehubah lain, pengubahsuaiannya tidak menjejaskan elemen asal.

Penyelesaian kepada dilema ini terletak pada fakta bahawa struct boleh mendedahkan antara muka. Dengan mencipta antara muka dengan set aksesori untuk harta yang diingini, seseorang boleh mengubah suai struct asas melalui rujukan antara muka, yang menunjuk ke objek berkotak. Kod berikut menunjukkan konsep ini:

public interface IMyStructModifier
{
    String Name { set; }
}

public struct MyStruct : IMyStructModifier
{
    ...
}

List<Object> obList = new List<object>();
obList.Add(new MyStruct("ABC"));
obList.Add(new MyStruct("DEF));

// Using a boxed object
MyStruct temp = (MyStruct)obList[1];
temp.Name = "Gishu";

// Using the interface
IMyStructModifier temp2 = obList[1] as IMyStructModifier;
temp2.Name = "Now Gishu";
Salin selepas log masuk

Kaedah ini membenarkan pengubahsuaian elemen dalam senarai struktur, walaupun ia mungkin mengakibatkan tinju. Oleh itu, apabila mempertimbangkan reka bentuk sesuatu jenis, keperluan untuk penyimpanan dan pengubahsuaian koleksi tidak seharusnya mengatasi pilihan semantik yang sesuai antara kelas dan struktur.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengubah suai nilai dalam senarai struktur dalam C#?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan