SebastianB. Geschrieben 22. Januar 2010 Geschrieben 22. Januar 2010 Hallo Liebe Programmiergemeinde, Ich schreibe einen Treiber bei dem ich mehere Variablen in C# mit hilfe einer List<> übergebe. private List<ExampleStruct> m_ExampleVariable; Ist meine Liste die von einem Struct mit mehreren Daten abgeleitet wird. Nun will ich diesen Code durchführen: m_Example[index].IntValue = BeispielFunktion(gibt int zurück); Folgende Fehlermeldung: Fehler Der Rückgabewert "System.Collections.Generic.List<"ExampleFunktion">.this[int]" kann nicht geändert werden, da er keine Variable ist. Ich bin ziemlich abgeneigt eine weitere Variable einzuführen, mit der ich meine Daten komplett einfüge wie z.B. m_ExampleVariable[index] = NocheineVariable; Kennt jemand eine effizientere Lösung? MfG SebastianB. Zitieren
Guybrush Threepwood Geschrieben 22. Januar 2010 Geschrieben 22. Januar 2010 Wenn du uns den richtigen Code statt diesem Pseudo Code zeigst können wir dir auch sagen wo der Fehler ist Zitieren
SebastianB. Geschrieben 22. Januar 2010 Autor Geschrieben 22. Januar 2010 Der PseudoCode entspricht meinem, enthält nur abgeänderte Namen die ich aus Datenschutztechnischen Gründen nicht weiterreichen darf. Ich arbeite an einem Entwicklungsprojekt des Landes RLP. Zitieren
Pointerman Geschrieben 22. Januar 2010 Geschrieben 22. Januar 2010 An diesem Verhalten kannst Du ersteinmal nichts ändern, wenn Du an der Struktur festhältst. Beim Zugriff auf ein element der Liste wird Dir eine Kopie des Element zurückgegeben (weil die Struct ein Valuetype ist). Sobald Du Deine struct in eine class änderst, bekommst Du beim Zugriff auf das Element eine Referenz und kannst einfach wie gewünscht Deine Werte setzen. Zitieren
Guybrush Threepwood Geschrieben 22. Januar 2010 Geschrieben 22. Januar 2010 Achso hab überlesen das du ein struct statt einer class hast. In dem Fall hat Pointerman natürlich recht Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.