日期:2014-05-20  浏览次数:20712 次

我要在多处加Array_sp不想多使用内存 具体有什么办法么?
string[]   Array_sp   ={ " ", " ", " ", " "};//编号,名字,数量,服务人                                 Array_sp[0]   =   Convert.ToString(SqlDataReader1[ "编号 "]).Trim();
                                Array_sp[1]   =   Convert.ToString(SqlDataReader1[ "名字 "]).Trim();  
                                Array_sp[2]   =   Convert.ToString(SqlDataReader1[ "havefwr "]).Trim();
                                Array_sp[3]   =   Convert.ToString(SqlDataReader1[ "定价 "]).Trim();
                              码 "]).Trim();
                              arraylistA.Add(Array_sp);   //
                              HashtableB.Add(Array_sp);   //

HashtableB.Add(Array_sp);   所占用内存增加了么?Array_sp如何变为静态的   也就是说arraylistA.Add(Array_sp);  
                              HashtableB.Add(Array_sp);   虽然都增加了Array_sp   但是内存还是占用Array_sp一个内存而不是2个。


问题主要是:我要在多处加Array_sp不想多使用内存   具体有什么办法么?

------解决方案--------------------
做成静态数组吧...

这样.只会实例化一次...

string[] Array_sp ={ " ", " ", " ", " "};
改为:
public static string[] Array_sp ={ " ", " ", " ", " "};

其实.局部的东西.无论是变量还是对象...
在方法或事件结束后就会自动释放.而静态的.只有在程序结束后才会释放...

至于你要怎样用.就看您的实际情况了...
------解决方案--------------------
静态的在调用时.如果在当前类中.不可以使用this关键字...

在其它类中调用.必须在之前加上类名...
------解决方案--------------------
up