Veröffentlicht 22. Januar 201015 j 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.
22. Januar 201015 j Wenn du uns den richtigen Code statt diesem Pseudo Code zeigst können wir dir auch sagen wo der Fehler ist
22. Januar 201015 j Autor 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.
22. Januar 201015 j 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.
22. Januar 201015 j Achso hab überlesen das du ein struct statt einer class hast. In dem Fall hat Pointerman natürlich recht
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.