Как вызвать нестатический метод - PullRequest
0 голосов
/ 17 ноября 2011

В моем классе "Server.cs" я хочу получить доступ к текстовому полю из формы. Я пытался использовать этот код:

ServerWindow.WriteChatlog(encoder.GetString(message, 0, bytesRead));

Но я получил эту ошибку:

An object reference is required for the non-static field, method, or property 'Chat_Server.ServerWindow.WriteChatlog(string)

ServerWindows.WriteChatlog (текст строки) выглядит так:

public void WriteChatlog(string text)
        {
            textBox1.Text += text + Environment.NewLine;
        }

Теперь я попытался сделать это прямо там, где я использовал метод ServerWindow.WriteChatlog, но это не сработало.

Они оба нестатические

Ответы [ 3 ]

5 голосов
/ 17 ноября 2011

Вам необходимо вызвать WriteChatLog для экземпляра класса ServerWindow. Пример:

ServerWindow servwin = new ServerWindow();
servwin.WriteChatlog(encoder.GetString(message, 0, bytesRead));
1 голос
/ 17 ноября 2011

Вы должны использовать this.WriteChatlog(...) или просто WriteChatlog(...). Предполагается, что вы вызываете код из кода формы.

0 голосов
/ 17 ноября 2011

У вас нет фактического экземпляра ServerWindow, когда вы звоните ServerWindow.WriteChatlog. Метод должен быть статическим: public static void WriteChatlog(string text) или вам нужен экземпляр ServerWindow: ServerWindow serverWindow = new ServerWindow() Я подозреваю, что первое - это то, что вам действительно нужно.

Так же, как в Console нет методов экземпляра, все статично.

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