有一些方法我们会封装到一些类里面。如果把这些方法静态化可能会更加方便一点,但是会不会导致系统内存占用增加?
如果实例化类再访问,有没有必要dispose呢?高手请谈谈二者在使用上有何讲究?

解决方案 »

  1.   

    用实例还是静态取决于你是否要对这些方法用得很多。如果在一个作用域内多次使用方法的化,最好用实例化的方法。如果只是用一两次的话就用静态。在WinForm中,因为对象的生命周期可以很长,多使用实例化方法。而在ASP.NET中因为任何对象的生命周期不会长于一个request以response的间隔,故反而用静态方法较多。另外,用静态方法似乎不那么面向对象了。但有时为了对项目划分层次、方便数据传递等也常用到静太乙方法。比如在很多DAL层就是完全用静太乙方法。
      

  2.   

    呵呵,看看MSDN中的例子,很多是用静态方法。
    关于这方面的讨论不妨看看OOA与SOA比较方面的文章,很受启发啊
      

  3.   

    原则: 
    1.静态的肯定要占内存,但是执行效率快.
      一般用到频率多的用静态的,用得频率较少的用动态生成,衡量标准根据程序的大小自己决定
    2.不用Dispose()方法,因为C#有自动垃圾回收机制
      

  4.   

    总结一下:
    在asp.net中用静态更好一点,速度快,内存也会很快回收?
      

  5.   

    在asp.net中用静态过程调入后都是存储在内存中,所以速度才快,内存不会很快回收经常使用的过程要使用静态,用来提高速度,当然会耗费更多的内存,不过这个不是问题了,现在一根内存条并不贵
      

  6.   

    ChengKing(bantamweight)说的第一点不确切。
    用的多的用实例,少的用静态。你所谓的占内存的说法也有误!
      

  7.   

    楼主说的是方法!asp.net中建议不要使用静态属性。如果方法中不涉及类的实例属性,将方法设置为静态更符合面向对象原则。且使用方便。