举个例子,
第一种情况
Brush b=new SolidBrush(Color.blue);
Font f =new Font("宋体",10);
Color c =Color.FromArgb(255,0,128,0);
string str ="abcdefg";
Graphics g =this.CreateGraphics();
g.drawstring(str,b,c,0,0);
f.Dispose();
b.Dispose();
g.Dispose();
第二种情况
this.CreateGraphics().drawstring("abcdefg",new SolidBrush(Color.blue),Color.FromArgb(255,0,128,0),0,0);显然第二种情况看起来更简捷,但是第一种情况显式的释放内存,不知道到底用哪种比较合理?
而且我运行。net程序时内存占用都很多,30几K的程序要占用15M左右的内存

解决方案 »

  1.   

    用Dispose方法释放资源,可以手动用GC.Collect();强制回收
    至于.net占用内存多没办法,添内存吧
      

  2.   

    1、没有调用外部资源的情况下一般不需要显示析构。例如你现在这三种类型都可以不管它。
    2、内存占用较多是因为内存资源由虚拟机统一调配,和你的程序没有直接关系,如果你对内存如此在意,应该使用本地编译的开发工具进行开发,比如非托管C++或Delphi。
      

  3.   

    net程序时内存占用都很多,30几K的程序要占用15M左右的内存拿集装箱装只鸽子,当然要费很多地方。如果你装了是1箱的货物,虽然也很费地方,但是毕竟在比例上小多了。