я обращаюсь к одной из них по индексу и пытаюсь изменить значение одного из полей, Rider выдаёт следующее предупреждение - "Indexer access returns temporary value. Cannot modify struct member when accessed struct is not classified as a variable" и предлагает: создать локальную переменную, присвоить ей значение этой структуры, а уже у этой переменной менять значение поля, например: var a = MyList[0]; a.field = 10. Такое решение не подходит, так как меняется переменная, а не та структура в списке. Пробовал создать в структуре метод для установки значения, например: MyList[0].SetValue(10). Предупреждений нет, но всё равно не работает. Дебагер внутри этого метода говорит, что новое значение установлено, но если позже обратиться к полю изменённой структуры так же по индексу, оказывается, что там хранится старое значение. Может кто-нибудь подскажет как поступить в данной ситуации? Замена структуры на класс помогает, но этого не хотелось бы
А чем вас не устраивают классы?
Все правильно должно быть. Ты же не копируешь данные. ты обращаешься по ссылке к тому обькту который присваеваешь
Это вообще другое
ну ему может же помочь, разве нет
Обсуждают сегодня