如何调用非静态方法

时间:2011-11-16 23:33:54

标签: c# visual-studio visual-studio-2010 c#-4.0

在我的班级“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 个答案:

答案 0 :(得分:5)

您需要在WriteChatLog课程的实例上调用ServerWindow。例如:

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

答案 1 :(得分:1)

您必须使用this.WriteChatlog(...)WriteChatlog(...)。这假设您正在从表单的代码中调用代码。

答案 2 :(得分:0)

当您致电ServerWindow时,您没有ServerWindow.WriteChatlog的实际实例。该方法需要是静态的:public static void WriteChatlog(string text)或者您需要ServerWindow的实例:ServerWindow serverWindow = new ServerWindow()我怀疑前者是您实际需要的。

就像Console上没有实例方法一样 - 一切都是静态的。