C# 在C中从静态方法调用非静态方法#

C# 在C中从静态方法调用非静态方法#,c#,static,textbox,C#,Static,Textbox,我在同一个TSDK类中有以下代码 public Int16 Write_To_Consol_dr(string ConsolCmd) { textBoxConsol.AppendText(ConsolCmd + "\n"); textBoxConsol.AppendText("Tena_Consol>"); } public static Int16 Write_To_Console(string ConsolCmd)

我在同一个TSDK类中有以下代码

public Int16 Write_To_Consol_dr(string ConsolCmd)
        {
        textBoxConsol.AppendText(ConsolCmd + "\n");
        textBoxConsol.AppendText("Tena_Consol>");
        }

public static Int16 Write_To_Console(string ConsolCmd)
        {
            TSDK.FormMain Clasi = new TSDK.FormMain();
            Clasi.Write_To_Consol_dr(ConsolCmd);
        }
我没有在文本框中看到任何东西。
谢谢

静态类与非静态类基本相同,但有一个区别:静态类不能实例化。换句话说,您不能使用new关键字创建类类型的变量。因为没有实例变量,所以可以使用类名本身访问静态类的成员。(参考)

也可以帮你解释一些代码。 这不是一个好的实践代码,但它可以实现您的要求

public class FormMain : Form {
    public static FormMain Instance = new FormMain();
    public void WriteToConsoldr(string consolCmd)
    {
        textBoxConsol.AppendText(consolCmd + "\n");
        textBoxConsol.AppendText("Tena_Consol>");
    }

    public static void WriteToConsole(string consolCmd)
    {
        Instance.Write_To_Consol_dr(consolCmd);
    }
}    

public class OtherClass 
{
    public void SomeMethod()
    {
        FormMain.WriteToConsole("Some text");
        // Or access the instance method directly
        FormMain.Instance.WriteToConsoldr("Some text");
    }
}

你在哪里显示Clasi?Clasi只是写入控制台的一个实例是的,但你没有显示它,所以你希望如何看到控制台cmd文本?TextBoxConsole是一个打开的文本框,我不确定我是否需要一直执行show()。当我在同一类中的非静态方法中时,我可以写入文本框,它将显示文本。您正在write_To_控制台中实例化一个新的TSDK.FormMain,顺便说一句,它创建了TextBoxConsole的一个新实例。如果您想在现有TextBoxConsole中查看ConsoleCmd,则需要使用TSDK.FormMain的现有实例,而不是创建新实例。我正试图通过FormMain.instance.Write__控制台_dr(Globals.CommandOut)发送信息;但是文本框中没有显示任何内容,是否可能文本框不属于我们创建的实例?