用了很久C#,就是不明白静态与实例的区别,请教高手帮忙解释一下。谢谢

解决方案 »

  1.   

    静态不属于类实例,不需要创建实例即可访问,而且是惟一的,比如
    class My
    {
    public static int i=100;
    }
    访问
    My.i;实例
    class My
    {
    public int i = 100;
    }
    访问
    My my= new My();
    my.i;
      

  2.   

    实例new 一个,就是一个new的。
      

  3.   

    静态时直接存在内存的,直接调用就可以了,不静态需要new之后才能调用的。,
      

  4.   

    静态的东西可以直接使用,不需要实例化一个对象后,通过那个对象点出里面的东西。
    实例恰好相反,需要使用New关键字创建 一个新的实例后使用。
      

  5.   

    NEW 一个就要分配内存,再实例一个也要分配内存,这样是不是没有静态的好
      

  6.   

    分静态库 和动态库
    静态库.LIB 包含源程序和EXE在一个程序之中,直接使用子函数即可,其中的类使用,NEW 来实例化为
    具体使用的值或函数等,包含在程序内,当然稳定性是最好的,但由于一开始就在EXE一起,所以耗费内存最大。一般把常变和调用多的,写在EXE一起,这属于常用基础的办法。
    为了多语言之间,或很多编程者之间共同完成协作编程,又出现了动态库又名DLL,有了DLL我们项目完成
    和改动量就小很多了,对于DLL的调用,则和制作有关,。net的DLL是指令集,可以反汇编出来,毫无安全性
    保障,如果制作时使用的是静态共享声明的DLL,则调用时无需实例化,当EXE程序运行时,相关DLL中的段即加入内存,直到程序结束,这种方式的,速度稍慢,也比较耗内存,调用简单可以直接使用。
    如果使用动态声明的DLL,则需要使用时,new实例化一下到具体EXE中用,这个实例化意思是,不同EXE进程间
    虽然可能同是调用该DLL,但数据完全不会相关的,默认是不共享内存的,除非特别处理.由于是使用才调入内存,所以节省内存,但损耗了速度和稳定性,不过对程序升级有利,有时升级,只是个别DLL,而EXE不变。
    总之和你使用的需要相关,都可以的,只要在你认为的满足速度,稳定,内存占用范围内,
    如果你需要成员间互相合作那么DLL合适,如果自己一个人,和速度要求高,做成单EXE吧,
    我个人比较喜欢设计过程中使用DLL分功能,且喜欢制作可静态调用的DLL,方便简单可以直接调用,用对象浏览器也可看到一般函数也是这样静态共享声明,当某个条件达不到时比如速度,内存,我才会去改成别的方式,也给你这个建议哦。
    不知道见解对不,我只是这样认为吧,供你有选择的参考。