Как в C# изменить значение элемента структуры?

программирование программы windows C#

Такой код:

private struct Proc
{
public int Memory;
public int Time;
private int AdressMemory;

public int Adress
{
get
{
return AdressMemory;
}
set
{
AdressMemory = value;
}
}
}

private List<Proc> myProces; // Заполненный список структур
myProces[3].Adress = 3; // Ошибка

Ошибка: Cannot modify the return value of 'System.Collections.Generic.List<OSLab4.myProcesses.Proc>.this[int]' because it is not a variable

Как сделать то что я хочу правильно с точки зрения C#?

Ответы:
попробуй (myProces[3]).Adress =3
List возвращает не ссылку на структуру как это было бы в C++, а копию структуры.
Proc tmp = myProces[3];
tmp.Adress = 3;
myProces[3] = tmp;
Будь это обычный массив, а не класс с методом this[int]() или Proc был бы классом, то так можно было бы сделать. Но в данном случае минимальной единицей является вся структура.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.