|
Как внести изменение в объект, находящийся в списке?
|
|||
---|---|---|---|
#18+
Добрый день! Только начал разбираться с C# и столкнулся со следующей проблемой: Есть структура: Код: c# 1. 2. 3. 4. 5.
Хочу внести изменение в поле sValue2 объекта, находящегося в списке. Делаю так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Но значение не меняется, а остается пустой строкой. Подскажите, как правильно вносить изменение в объект, находящийся в списке? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 11:52 |
|
Как внести изменение в объект, находящийся в списке?
|
|||
---|---|---|---|
#18+
Одна из особенностей value type заключается в том, что при присвоении ты получаешь не сам объект, а его копию, и пытаешься изменить копию. Если вместо структуры использовать класс - все будет работать ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 12:03 |
|
Как внести изменение в объект, находящийся в списке?
|
|||
---|---|---|---|
#18+
ROLpogo Подскажите, как правильно вносить изменение в объект, находящийся в списке? Это не объект, это структура, value-type, они присваиваются и копируются по значению. Для изменения значимых типов для них заводят интерфейс с методом, вносящим изменения, структура объявляется реализующей этот интерфейс, далее экземпляр структуры приводится к интерфейсному типу (при этом производится упаковка), и вызывается интерфейсный метод. Всё описано у Рихтера - глава 5 Primitive, Reference, and Value Types, раздел Boxing and Unboxing Value Types, подраздел Changing Fields in a Boxed Value Type by Using Interfaces. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 12:03 |
|
Как внести изменение в объект, находящийся в списке?
|
|||
---|---|---|---|
#18+
либо так (для структуры) Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 12:04 |
|
|
start [/forum/topic.php?fid=20&fpage=10&tid=1398529]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 231ms |
total: | 393ms |
0 / 0 |