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.
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
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.
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.
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden