![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| L0tR |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 8.2.2009 Где: Москва (Любецы) Репутация: нет Всего: нет |
Ситуация достаточно запутанная, но уж помогите пожалуйста...
В Form1.cs объявлена коллекция static public List<Жилое_помещение> livspace = new List<Жилое_помещение>(); В классе Жилое_помещение объявлен виртуальный метод: public virtual void CustAdd(int a, bool b, string c, int d, string e) { } Его я переопределяю в нескольких производных классах. В Form2.cs я обращаюсь к методу: Form1.livspace.CustAdd((int)numericUpDown1.Value, checkBox1.Checked, textBox1.Text, (int)numericUpDown2.Value, comboBox2.Text); И получаю вот такую фигню про CustAdd: 'System.Collections.Generic.List<Контрольное_домашнее_задание_1_Акулов.Жилое_помещение>' does not contain a definition for 'CustAdd' and no extension method 'CustAdd' accepting a first argument of type 'System.Collections.Generic.List<Контрольное_домашнее_задание_1_Акулов.Жилое_помещение>' could be found (are you missing a using directive or an assembly reference?) Почему он не видит метод CustAdd? |
|||
|
||||
| NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 2 Всего: 13 |
А откуда вдруг в списке появится такой метод?
-------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
| L0tR |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 8.2.2009 Где: Москва (Любецы) Репутация: нет Всего: нет |
Эм... не издевайтесь надо мной, я первый раз нормальную прогу пишу))
В чём дело, что метод пустой? Так я его переопределяю вот так примерно public override void CustAdd(int a, bool b, string c, int d, string e) { Form1 form = new Form1(); CheckedListBox mainbox = (CheckedListBox)form.Controls["mainbox"]; Form1.livspace.Add(new Квартира(d, e)); Form1.livspace[0].address = c; Form1.livspace[0].area = a; Form1.livspace[0].gas = b; string el = Form1.livspace[0].address + " " + Form1.livspace[0].area + " " Form1.livspace[0].roomamount + " " + Form1.livspace[0].rating; mainbox.Items.Add(el); } Это сообщение отредактировал(а) L0tR - 8.2.2009, 23:32 |
|||
|
||||
| L0tR |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 8.2.2009 Где: Москва (Любецы) Репутация: нет Всего: нет |
А, NightmareZ, вот теперь я кажется понял. То есть это метод тока катит для отдельного члена из массива. Я переделываю на
Form1.livspace[0].CustAdd((int)numericUpDown1.Value, checkBox1.Checked, textBox1.Text, (int)numericUpDown2.Value, comboBox2.Text); и программа запускается... но не работает Это сообщение отредактировал(а) L0tR - 9.2.2009, 00:07 |
|||
|
||||
| L0tR |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 8.2.2009 Где: Москва (Любецы) Репутация: нет Всего: нет |
У меня вот такая ещё проблема (к той вернусь позже, если конечно ответит кто-нибудь...
Есть класс public abstract class Жилое_помещение { } С такими свойствами: public int area;//площадь public bool gas;//подключен ли газ public string address;//адрес и есть производные классы, вот пример: public class Квартира : Жилое_помещение { public int roomamount;//кол-во комнат public string rating;//оценка состояния квартиры Надо создать единый массив, где будут храниться все объекты производных классов, со всеми свойствами. Хотелось бы реализовать это с помощью List < > Но если создать static public List<Жилое_помещение> livspace = new List<Жилое_помещение>(); то в livspace нельзя будет хранить свойства производных классов, а только базового. Что тут можно сделать? |
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: нет Всего: 8 |
почему нельзя? просто добавлять в список нужно экземпляры не базового класса, а соответствующего производного
чтото типа этого Это сообщение отредактировал(а) voov - 9.2.2009, 10:38 |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |