private byte[] data = new byte[1024];//唯独这里不 static ,为什么?private static int size = 30;很多static ...

解决方案 »

  1.   

    static对象属于类型,非static属于对象
    思考一下就想通的了
      

  2.   


    我就是不明白都定义为static有什么好处?我用非static一样能完成功能啊
      

  3.   

    static编译好像比较快还有在定义一个类的时候用static的话,不需要实例化,可以直接用,在某些时候用起来比较方便
      

  4.   

    原因1:
    static 变量和函数只局了限于所在的文件,如果在不同的文件中出现同名的变量或是函数不互相干扰!(如果是public)
    原因2:与上面的朋友一至
      

  5.   

    static编译比较快 ???????
      

  6.   

    static方法执行的时候不会传入this指针,所以无法访问实例的成员。不传入this指针,那么在执行效率上就比非static方法高,当然也高不了多少。他的存在是在逻辑清晰一些
      

  7.   

    static是表示类方法或者类属性阿,这个方法或者属性类不需要实例话就可以使用阿!!因为这个方法或者属性是属于这个类的,而不是属于类的某个特殊实例的阿!!
      

  8.   


    首先应该是使用全局变量和函数。因为在 C#中没有了全局变量和全局函数,并且更重要的是为了将全局的东西更好的封装,所以用static 来封装是一个不错的选择。毕竟全局的东西还是少不了的。第二是有一些功能(函数)和属性(变量)是不依赖于实例的,就可以用 Static,这样在使用的时候可以不构造实例而直接使用
      

  9.   

    和C++编译的一样。
    如果用static编译完之后,代码是放在最顶端data段,静态分配
    所以在写代码的时候,能用static就用。
      

  10.   

    static定义放在栈中,而不是堆中。
      

  11.   

    因为可以少写很多new 和一对括号()
      

  12.   

    偶觉得,static用的太多了,容易影响代码的可读性。使用static时不用对象来调用,而直接使用类来调用。一般性如果是公有数据才使用static,否则用的太多反倒成了四不象,大家可以想象一下,如果程序当中都是使用类来调用,铺天盖地的都是类名,那么就不是什么面向对象了,而只是披着面向对象的皮的面向过程罢了
    如果大家要追求快的话,可以使用C或者汇编之类的东东,那又何必需要什么面向对象呢?
      

  13.   

    面向对象本来就是方便代码的可读性的,当然是需要损失一些时间的,但是现在机器这么快,又何需顾及这么多呢,再说,本来.NET就是用的虚拟机,再怎么快,也不过如此,如果真的要追求速度的话,还是C和汇编用起来方便
      

  14.   

    1.static数据成员就是为了在类的所有实例里面当全局数据用,取代全局变量
    2.线程回调函数就是static的,因此只能访问static数据,不能直接访问别的数据,保证了线程间不相互干扰。达到的效果,就像每个进程都只能访问自己地址空间的数据,不会干扰其它进程一样。
    3.除以上两点以外,就再也没有别的作用了(不是为了快,才做成static的。例如:人类都有年龄的属性,如果为了编译快,把年龄static了,那么每过一年大家都长大一岁,到时候年龄里到底填你的还是填我的?)
      

  15.   

    1)单件模式
    2)模拟C
    3)类的构造函数为private,防止继承的情况下
      

  16.   

    我也不喜欢大量用static,那样感觉不太像面向对象的程序了。
      

  17.   

    呵呵,总结一下,两点原因:
    1.可以作为全局变量或函数来用.
    2.有些功能或属性(如:线程回调)不能依赖于实例,避免产生干扰,这时用static
      

  18.   

    1。类中的函数可以直接执行,而不用生成实例
    2。不用动态生成,销毁,使程序高效
    3。有些全局的计数器必须用STATIC