3 / 3 / 0
Регистрация: 21.01.2013
Сообщений: 27
1
.NET 4.x

вызов потомком метода родителя

04.10.2013, 17:53. Показов 1012. Ответов 2
Метки нет (Все метки)

Столкнулся с проблемой. для вызова метода родителя использую делегат.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
namespace PrivatChatServer
{
    public delegate void myReport(string theItem);//Делегат
    SrvControl SRV = new SrvControl(new myReport(AddInfoToListBox));
    
        // добавляем инфу в лист бокс
        public void AddInfoToListBox(string s0)
        {
            try
            {
                if (this.ClientList.InvokeRequired)
                {
                    SetTextCallback d = new SetTextCallback(AddInfoToListBox);
                    this.Invoke(d, new object[] { s0 });
                }
                else
                {
                    // добавляем на форму
                    ClientList.Items.Add(s0);
                }
            }
            catch
            {
            }
        }
}
соответственно в классе:
C#
1
2
3
4
5
6
7
8
9
    public class SrvControl
    {
        ...
        myReport ReportDelegate;//переменная хранит делегат фyнкции вывода сообщения
        public SrvControl(myReport ReportDelegate)
        {
            this.ReportDelegate = ReportDelegate;
        }
эээ
и обращаюсь к делегату

C#
1
ReportDelegate("Подключен клиент: " + client.RemoteEndPoint.ToString());
Возникает ошибка, метод который вызывается AddInfoToListBox должен быть статический. но если его сделать статическим, то он не может обратиться к листбоксу.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2013, 17:53
Ответы с готовыми решениями:

Полиморфизм: вызов метода базового класса, переопределенного метода и нового метода
В базовом классе метод помечен как virtual. Насколько я понял из книги: override означает, что...

Вызов методов классов друг у друга (вызов метода из другого класса)
Есть несколько классов, которые могут вызывать методы (функции) друг у друга. Логика: класс1 имеет...

Вызов переменной метода A из метода В
Добрый день. Подскажите как происходит вызов Например даны два класс А и В, в каждом классе есть...

вызов метода
Добрый день, подскажите пожалуйста почему при вызове метода pole из конструктора картинка не...

2
191 / 191 / 29
Регистрация: 03.12.2009
Сообщений: 853
04.10.2013, 18:11 2
Начнём с того что SrvControl не потомок главного класса.
А продолжим
Делегату можно назначить любой метод из любого доступного класса или структуры, соответствующий сигнатуре делегата, которая состоит из типа возвращаемого значения и параметров. Этот метод должен быть статическим методом или методом экземпляра.
0
Master of Orion
Эксперт .NET
6087 / 4943 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
04.10.2013, 21:35 3
tretrem, забавно, у меня тоже были проблемы с подобными вещами. В итоге понял, что это дикие извраты и нужно делать по-другому. Что мешает просто кастовать к базовому классу и вызвать метод базового класса? К чему такие милые костыли?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2013, 21:35

Многопоточный вызов метода
Есть некий сайт, страницы которого нужно спарсить (использую Html Agility Pack). Вызов начала...

Правильный вызов метода
class Dict{ public List<Word> words; public Dict(){ words = new...

Вызов метода в цикле While
Всем привет! Есть два метода: один шифрует пароль (получает строку - выводит зашифрованую строку) и...

Вызов метода из цикла
Есть List стрингов. Есть массив стрингов - ключевые слова. Есть набор методов, которые для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.