Using sr As New StreamReader(FileName, System.Text.Encoding.Default)
Me.txtDataName.Text = dataName
Me.Tec.Text = Me.Tec.Text & sr.ReadToEnd.Trim
sr.Close()
End Using
这个using 结构中的sr.Close() 还需要嘛?今天用了FxCop检测之后 提示 contains possible code paths that dispose 'sr' multiple times. Change this behavior so that Close or Dispose is only called once or ensure that the Dispose implementation of ''sr'' is reentrant." 意思应该是重复 Close or Dispose 了?
解决方案 »
- 如何快速对比datagridview里面两列数据的不同
- 怎么使得XmlSerializer的Deserialize和Serialize保持相同的encoding?
- 想让DataGridView只显示出查询结果应该怎样做?
- 如何为media player控件添加标题
- WinForm中设置Cookie值
- 急!!!!请大家帮忙
- C# winform 转成智能设备下开发 System.Drawing 下没有PointF
- 为什么监听任意的ip发送过来的信息语句中提示不存在IPAddress?
- 求救!关于DataGrid的高难度问题
- 如何尽快掌握C#
- 三层结构中,BLL层和DAL层的分工,看看我做的合理不?
- 出现的线问题,早了半天名查处原因拿错了?
因为 如果using的对象没有实现了IDisponse结构,会编译通不过的。
比如绘图
using(Graphics g = this.CreateGraphics())
{
using(Pen p = new Pen(Color.Black,2))
{
g.DrawLine(p,0,0,100,100);
}
}这样明显很累赘。缩进太多了。
你就不该new。Pen用Pens里的, g用e里面的。
否则不断的new, 不断的dispose, 消耗也不小。
using(Graphics g = this.CreateGraphics())
{
using(Pen p = new Pen(Color.Black,2))
{
g.DrawLine(p,0,0,100,100);
}
}'累赘点没关系 这样排列起来也不难看 关键.net程序内存耗的太厉害了
和内存一点关系都没有,using是微软想提供的一个语法糖而已。但显然就是个多余的废品。
如果你觉得2层嵌套没关系。如果绘图时候,先用TexttureBrush填充底图,然后在地图上用另一个TexttureBrush绘制一块区域,在这个区域上绘制一条线宽是2的线,以及绘制一个TexttureBrush填充的文字。你还觉得这样不难看么?就像我们ShowDialog的返回希望翻过来写避免更多的括号一样。OpenFileDialog dlg ...
if(dlg.ShowDialog() != DialogResult.OK) return;缩进的过多显然是不明智的选择,而且这个释放,为什么要那么累赘的写using,自己写dispose不是很好么?
借宝地问一下 using (DbCommand dbCommand = dbConnection.CreateCommand())
{
dbCommand.CommandText = sentence;
//操作超时时间,目前设置为3分钟
dbCommand.CommandTimeout = 180;
if (parameters != null)
{
dbCommand.Parameters.AddRange(parameters);
}
dbConnection.Open();//这开了,是不是后面也不要再Close()了吧
return dbCommand.ExecuteNonQuery();
}
问的好
需要的。否则你需要再用using扩一层。