Ich habe ein Objekt mit den Attributen String erstellt, und das andere ist ein List<String>
. Ich habe auch eine static List<MyObject>
erstellt, wo ich dann alle meine Objekte hinzufügen. Jetzt ist mein Problem das zweite Attribut wird überschrieben.Eigenes Klassenobjekt-Attribut wird überschrieben
Zum Beispiel habe ich drei Objekte:
Object1: "Name"; List with 3 Strings
Object2: "Name2"; List with 2 Strings
Object3: "Name3"; List with 5 Strings
Wenn ich sie in meine Objektliste hinzufügen jetzt an, wie
Name; List with 5 Strings
Name2; List with 5 Strings
Name3; List with 5 Strings
es die zweite Attribute in allen anderen Objekte außer Kraft setzen, so sieht Die Liste.
Code:
for (int i = 0; i < 100; i++)
{
if (elo.ReadObjMask(i) > 0)
{
var iRet = elo.PrepareObjectEx(0, 0, i);
maskenname = elo.ObjMName();
if (maskenname != "")
{
for (int e = 0; e < 50; e++)
{
string eigenschaft = elo.GetObjAttribName(e);
if (eigenschaft != "" && eigenschaft != "-")
{
eigenschaften.Add(eigenschaft);
}
}
allMasks.Add(maskenname);
}
else
{
// Do nothing
}
EloMask emask = new EloMask(maskenname, eigenschaften);
staticVariables.allMask.Add(emask);
eigenschaften.Clear();
}
}
Hier ist meine Objektklasse:
public class EloMask
{
public string name;
public List<String> eigenschaften;
public EloMask(string iname, List<String> ieigenschaften)
{
name = iname;
eigenschaften = ieigenschaften;
}
}
Sie müssen den Code für Ihre „Objekt“ Klasse angeben und wie Sie instanziieren und zur Ergänzung der statischen Liste. – Thangadurai
staticVariables.allMask.Add (emask); in diesem Teil füge ich es meiner statischen Liste hinzu – saamii
Ich glaube das: EloMask emask = neue EloMask (maskenname, eigenschaften); wird Eigenschaften als Referenz übergeben, so wenn es geändert wird, werden auch alle anderen geändert. Sie müssen eine neue Instanz Ihrer Liste initiieren, bevor Sie sie schreiben. eigenschaften = neue Liste; –