Heim > Backend-Entwicklung > C++ > Wie kann ich Werte innerhalb einer Liste von Strukturen in C# ändern?

Wie kann ich Werte innerhalb einer Liste von Strukturen in C# ändern?

DDD
Freigeben: 2025-01-02 17:28:39
Original
1012 Leute haben es durchsucht

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

Werte in einer Liste von Strukturen ändern

Beim Arbeiten mit einer Liste von Strukturen kann beim Versuch, Elemente zu ändern, ein Fehler auftreten. Dieses Problem entsteht aufgrund der Werttypsemantik von Strukturen, die für jede Werttypvariable separate Instanzen erstellen. Wenn also ein Strukturelement in eine andere Variable kopiert wird, wirkt sich seine Änderung nicht auf das ursprüngliche Element aus.

Die Lösung für dieses Dilemma liegt in der Tatsache, dass Strukturen Schnittstellen offenlegen können. Durch Erstellen einer Schnittstelle mit einem Set-Accessor für die gewünschte Eigenschaft kann man die zugrunde liegende Struktur über die Schnittstellenreferenz ändern, die auf das Boxed-Objekt zeigt. Der folgende Code demonstriert dieses Konzept:

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";
Nach dem Login kopieren

Diese Methode ermöglicht die Änderung von Elementen in einer Liste von Strukturen, obwohl dies zu Boxing führen kann. Daher sollte bei der Betrachtung des Entwurfs eines Typs die Notwendigkeit der Sammlungsspeicherung und -modifikation nicht die geeignete semantische Wahl zwischen einer Klasse und einer Struktur außer Kraft setzen.

Das obige ist der detaillierte Inhalt vonWie kann ich Werte innerhalb einer Liste von Strukturen in C# ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage