函数在什么情况下,必须加 static 修饰符,什么情况下不能加呢?
-------------------
一直不明白,static 这个修饰符,什么时应该加上,何时不能加上,请指教.

解决方案 »

  1.   

    需要实例成员的方法、虚方法或者覆盖的方法、实现接口的方法 不可以加
    不是以上情况,并且算法固定的方法最好static
    算法可能变化的方法最好不要加,说不定什么时候改一下,就要变成虚方法
      

  2.   

    编译如下语句
    public static void staticMethod()
    {
        this.Text = "123";
    }提示:关键字“this”在静态属性、静态方法或静态字段初始值设定项中无效this关键字引用类的当前实例。就是说静态静态方法不能通过类实例来访问只能通过类
    而非静态方法不能通过类来访问只能通过类实例Graphics g = Graphics.FromHwnd(Handle);
    g.DrawImage(image1, 0, 0);这里FromHwnd()由类Graphics直接调用说明是静态方法
    而DrawImage()有类实例g调用说明是非静态方法
    Graphics.DrawImage()或者g.FromHwnd()则为非法调用