Как же создавать эти объекты? Конечно, можно возложить эту обязанность на пользователя, объявившего массив wins, - пусть он и создаст экземпляры для каждого элемента массива. Правильнее все-таки иметь в классе соответствующий метод. Метод должен быть статическим, чтобы его можно было вызывать еще до того, как созданы экземпляры класса, поскольку метод предназначен для создания этих самых экземпляров. Так в нашем классе появился статический метод InitAr: //статический метод public static Winners[] InitAr(Winners[] Winar) { for(int i=0; i < Winar.Length; i++) Winar[i] = new Winners(); return(Winar); }//InitAr Методу передается массив объектов, возможно, с нулевыми ссылками. Он возвращает тот же массив, но уже с явно определенными ссылками на реально созданные объекты. Теперь достаточно вызвать этот метод, после чего можно спокойно вызывать и метод SetVals. Вот как выглядит правильная последовательность вызовов методов класса Winners: Winners.InitAr(wins); //создание значений элементов массива for(int i=0; i < wins.Length; i++) wins[i].SetVals(winames[i]); //печать значений |