循环里定义变量的内存分配问题
对于在循环里定义变量是不是不科学,请大家看下边的代码
foreach(XmlNode newsItemNode in newsItemNodes)
{
//变量的定义放在循环外和循环里,对内存的分配是不是也有很大影响?
//比如下行代码:我定义一个字符串变量
string str = newsLinkNode.InnerText;//对此变量的定义放在循环外和循环里,有什么不同?
request = (HttpWebRequest)HttpWebRequest.Create(newsLinkNode.InnerText);
request.Timeout = 10000;
response = (HttpWebResponse)request.GetResponse();
stream = response.GetResponseStream();
reader = new StreamReader(stream,Encoding.GetEncoding("GB2312"),false,bufferSize);
//注意上行代码:在这个循环里每进行一次,都需要在堆栈上创建一个实例reader,这样做是不是不科学?
readPosition = reader.Read(buffer,0,buffer.Length);
newsContentBuilder.Remove(0,newsContentBuilder.Length);
while(readPosition > 0)
{
//...对流的处理
}
}