Asp.Net程序调用类中定义的方法的有关问题

以前在调用类中定义的方法的时候,总会遇到一个问题:

类中定义的方法,有的需要实例化之后,智能提示的列表里才会显示出来自己在类文件中所定义的方法,而有的时候,类不需要实例化,智能提示的列表中也会显示出来定义的方法,同样是类中定义的方法,为什么有的需要实例化才能使用,而有的方法,却不需要实例化,就可以直接使用呢?

今天我终于明白了这个问题,在这里说明一下,一方面提醒自己记住这个问题,以后遇到这种情况时,不用再去纳闷;一方面也把我的心得共享出来,共同学习,呵呵……

1.新建一个类文件,名称为 test.cs;

2.在这个类文件中定义两个方法,代码如下(注意:前一个是静态的,后一个不是静态的):

/// <summary>
    /// 定义一个静态的方法connstr();
    /// </summary>
    /// <returns></returns>
    public static string connstr()
    {
        return "正确";
    }
    /// <summary>
    /// 定义一个方法connstr2();
    /// </summary>
    /// <returns></returns>
    public  string connstr2()
    {
        return "错误";
    }

3.然后,新建一个页面(在winfom程序中也可以的),并在页面上放两个个button按钮和两个label控件,如图:

 
双击 btn1 按钮,生产button的click事件,在里面写代码:
label1.text=Test.connstr2().Tostring();
 
双击 btn2 按钮,生产button的click事件,在里面写代码:
test myTest=new test();
label1.text=myTest.connstr().Tostring();
 
运行程序,就可以看到结果了。这时候你就知道问题的所在了,connstr定义的是一个静态的方法,说明这个方法只能通过类来访问,不能通过对象实例来访问;而connstr2定义的方法,因为不是静态的,所以必须通过实例化的方法,来进行调用。
原文地址:https://www.cnblogs.com/kdkler/p/2030075.html