Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2011, 09:15   #1
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию модификация элементов словаря

Словарик, с неменяющимся значением значения:
Код:
struct Addratom
{
  public Byte[] byteaddr{get;set;}
  public int atime{get;set;}
}
public static Dictionary<string, Addratom> addresses;
if(!addresses.ContainsKey(receivedstradr))
          addresses.Add(receivedstradr, new Addratom());
addresses[receivedstradr].byteaddr = t;
В последней строке выдаёт:
Cannot modify the return value of 'System.Collections.Generic.Diction ary<string,udpreceiver.Addratom>.th is[string]' because it is not a variable

А вот если сделать сеттер руками:
Код:
  struct Addratom
  {
    public Byte[] byteaddr{get;set;}
    public int atime{get;set;}
    public void setByteaddr(Byte[] t)
    {
      byteaddr = t;
    }
  }
И ставить значение через него, то всё работает:
Код:
addresses[receivedstradr].setByteaddr(t);
В чём разгадка?
the_deer_one вне форума Ответить с цитированием
Старый 29.06.2011, 09:56   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а зачем делаете свойства?
почему нельзя поля сделать?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.06.2011, 10:19   #3
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Ну типа так кошернее.
the_deer_one вне форума Ответить с цитированием
Старый 29.06.2011, 11:35   #4
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Вообще нифига не работает, потому что метод [] возвращает копию объекта, и мой словарь всегда пустой. А вот как получить ссылку на элемент словаря?
the_deer_one вне форума Ответить с цитированием
Старый 29.06.2011, 13:18   #5
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Я просто не знал что структуры работают как типы значений. Соответственно нужно просто поменять структуру на класс.
the_deer_one вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка словаря ! himic888 Помощь студентам 0 02.05.2011 17:26
[ActionScript 2.0] Создание словаря Рамик JavaScript, Ajax 0 07.04.2011 12:36
Создание словаря KASPEER HTML и CSS 1 05.04.2011 00:48
В массиве из п элементов много совпадающих элементов. Найти количество различных элементов Strax Фриланс 11 12.06.2010 20:13
Создание словаря tmp_user Помощь студентам 5 24.11.2007 18:30