|  2.02.2015 / 15:23 |  | 
| Ксакеп    Модератор форума 
  Сейчас: Offline 
 Регистрация: 20.06.2012
 | Naik,  и...? В # нет type erasing, и для списков должна быть определенной операция [ ]. Очевидно, bonndar что-то не то сделал. Объявил список объектов, а не точек, например.
 | 
|  2.02.2015 / 15:24 |  | 
| Naik    Пользователь 
  Сейчас: Offline 
 Имя: %name%Регистрация: 14.03.2010
 
 | Ксакеп, тут нужен List /* a не */ ArrayList
Изменено Naik (2.02 / 15:25) (всего 1 раз)
 | 
|  2.02.2015 / 17:09 |  | 
| boNNdaR    Пользователь 
  Сейчас: Offline 
 Имя: РомаОткуда: місто Львів
 Регистрация: 01.12.2010
 
 | Объявляю вот так:  public ArrayList а=new ArrayList();
Изменено boNNdaR (2.02 / 17:10) (всего 1 раз)
 | 
|  2.02.2015 / 17:13 |  | 
| Ксакеп    Модератор форума 
  Сейчас: Offline 
 Регистрация: 20.06.2012
 | Что я и говорил.  boNNdaR, напиши так: ArrayList<Point> аrr = new ArrayList<Point>();
И можно будет обойтись без явного приведения к Point:UPD : List вместо ArrayList.Изменено Ксакеп (2.02 / 17:34) (всего 1 раз)
 | 
|  2.02.2015 / 17:27 |  | 
| Asylum29    Пользователь 
  Сейчас: Offline 
 Регистрация: 02.02.2015
 | ArrayList в C# не является обобщенным типом.https://msdn.microsoft.com/ru-...ylist(v=vs.110).aspx Потому такая строка невозможна: ArrayList<Point> аrr = new ArrayList<Point>();
А данный код ((Point)arraybla[i]).X = 10;
приводит к распаковке значимого типа из кучи. Для задания свойств типа Point требуется создать новую структуру типа Point в стеке. Однако после изменения полей такая структура может быть сразу же подвергнута сборке мусора. Потому данный код в C# тоже невозможен. Лучше использовать, как уже посоветовали, обобщенный тип List<T>.https://msdn.microsoft.com/ru-ru/library/6sh2ey19(v=vs.110).aspxИзменено Asylum29 (2.02 / 17:31) (всего 2 раза)
 | 
|  2.02.2015 / 17:33 |  | 
| Ксакеп    Модератор форума 
  Сейчас: Offline 
 Регистрация: 20.06.2012
 | Боже мой, что за язык. ArrayList не обобщенный тип. Ужас.
 | 
|  2.02.2015 / 17:38 |  | 
| Asylum29    Пользователь 
  Сейчас: Offline 
 Регистрация: 02.02.2015
 | Нормальный язык. ArrayList является устаревшим типом, насколько мне известно, он использовался, когда в C# еще не было поддержки обобщений.
 | 
|  2.02.2015 / 20:30 |  | 
| boNNdaR    Пользователь 
  Сейчас: Offline 
 Имя: РомаОткуда: місто Львів
 Регистрация: 01.12.2010
 
 | Тоесть лучше List юзать?
 | 
|  2.02.2015 / 20:39 |  | 
| Naik    Пользователь 
  Сейчас: Offline 
 Имя: %name%Регистрация: 14.03.2010
 
 | Ксакеп, а я о чем писал?   | 
|  2.02.2015 / 20:42 |  | 
| Asylum29    Пользователь 
  Сейчас: Offline 
 Регистрация: 02.02.2015
 | Да, List<T> обеспечивает типобезопасность, а также избавляет от лишних операций упаковки/распаковки значимых типов. Однако Вам все равно придется заводить новую переменную для изменения типа-значения в листе, то есть: var list = new List<Point>();...var p = list[i];p.X = 10;list[i] = p;
А следующий код не выполнится: var list = new List<Point>();...list[i].X = 10; // ошибка
Изменено Asylum29 (2.02 / 20:56) (всего 1 раз)
 |