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

时间:2015-12-08 02:02:39

标签: 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.FormMain Clasi = new TSDK.FormMain();
            Clasi.Write_To_Consol_dr(ConsolCmd);
        }

我在文本框中没有看到任何内容。 感谢

2 个答案:

答案 0 :(得分:0)

静态类与非静态类基本相同,但有一个区别:静态类无法实例化。换句话说,您不能使用new关键字来创建类类型的变量。因为没有实例变量,所以可以使用类名本身访问静态类的成员。 (参考https://msdn.microsoft.com/en-us/library/79b3xss3.aspx

This one也可以帮到你

答案 1 :(得分:0)

一些代码来解释。 这不是一个好的练习代码,但它会实现你所要求的。

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");
    }
}