Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с методами, VS 2008, C# 
:(
    Опции темы
L0tR
Дата 8.2.2009, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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?

PM MAIL WWW ICQ   Вверх
NightmareZ
Дата 8.2.2009, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 10.8.2006

Репутация: 2
Всего: 13



А откуда вдруг в списке появится такой метод?  smile 


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
L0tR
Дата 8.2.2009, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL WWW ICQ   Вверх
L0tR
Дата 8.2.2009, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.2.2009
Где: Москва (Любецы)

Репутация: нет
Всего: нет



А, NightmareZ, вот теперь я кажется понял. То есть это метод тока катит для отдельного члена из массива. Я переделываю на

Form1.livspace[0].CustAdd((int)numericUpDown1.Value, checkBox1.Checked, textBox1.Text, (int)numericUpDown2.Value, comboBox2.Text);

и программа запускается... но не работает smile  Я сейчас опишу проблему...


Это сообщение отредактировал(а) L0tR - 9.2.2009, 00:07
PM MAIL WWW ICQ   Вверх
L0tR
Дата 9.2.2009, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.2.2009
Где: Москва (Любецы)

Репутация: нет
Всего: нет



У меня вот такая ещё проблема (к той вернусь позже, если конечно ответит кто-нибудь... smile ) - 
Есть класс 
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 нельзя будет хранить свойства производных классов, а только базового.
Что тут можно сделать?
PM MAIL WWW ICQ   Вверх
voov
Дата 9.2.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Патамушта мы пилоты
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 29.11.2007

Репутация: нет
Всего: 8



Цитата(L0tR @  9.2.2009,  01:34 Найти цитируемый пост)
нельзя будет хранить свойства производных классов

почему нельзя?
просто добавлять в список нужно экземпляры не базового класса, а соответствующего производного
Код

public List<Жилое_помещение> livspace = new List<Жилое_помещение>();
livspace.add(new Квартира());

чтото типа этого

Это сообщение отредактировал(а) voov - 9.2.2009, 10:38
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.