楼主可用去了解下using 语法!
解决方案 »
- c# sql 语句换行 送分 分 分
- 在textbox中输入时间
- 问个 ebBrowser控件打开网站后,判断网站是否弹出窗口的问题.
- C#打包部署时,如何将framework打包进程序,自动安装?
- c# 上传下载,基础对象已关闭~~~
- 动态查询如何实现sql参数化?
- 关于FLASH
- 高手指点C#关于textBox的一个奇怪问题?(在线等)
- 跪求wpf DataGrid DataGridComboBoxColumn动态的传递参数绑定数
- 能不能对目录下的文件按文件名或文件名关键字进行搜索?可不可以对文件进行全文检索
- IIS发布WebService服务,使用localhost可以访问,但是使用ip或者本机的127.0.0.1都无法访问
- 大家都用什么工具做帮助文档?
对于上述的描述,是使用using对哪?还是不适用using对?
因为第一种方法其实没有释放。那么这样操作对吗?会有什么问题吗?
第二种是使用了USING的写法
USING的小括号中的对象在出了的大括号后会被系统自动释放。
释放什么东西你知道吗?你不能“拎个锤子见到一个钉子就砸一砸”,你应该弄脑筋想想。动不动就写using、没有必要写的时候也写,才是真正有问题的。
这个说法是绝对错误的。using的对象,在“出了的大括号后”会被系统自动调用其 Disposable 接口的Dispose方法,即使抛出异常时也会调用。但是谁告诉你说 Dispose 方法是释放对象自身?只有 GC 才会释放.net对象。using根本不会释放.net对象。
这个说法是绝对错误的。using的对象,在“出了的大括号后”会被系统自动调用其 Disposable 接口的Dispose方法,即使抛出异常时也会调用。但是谁告诉你说 Dispose 方法是释放对象自身?只有 GC 才会释放.net对象。using根本不会释放.net对象。
人家问的问题是一个初学者的问题,你有必要把问题深究到N层去解释吗?
我知道严格上讲不能这么说,当对于一个连USING都知道的人来说 我认为给他一个“自动释放”这样的简单解释有利于人家进一步学习,如果说到了一定层次,再去深入也是一种学习方法。并且如果要深究问题,GC就一定会立即释放干净.NET对象吗?托管代码的资源释放是由他的垃圾回收机制来管理和控制的。你是不是在这里还要给人家讲讲垃圾回收机制呢?
从笼统上来说自动释放并没有错,自动释放并不等于马上或是立即释放。
你可能是高水平的程序员,但对于我们这样的菜鸟学习者还是要慢慢深入才好。一开始就深入到底层东西不免让人晕头转向。
其中有如下内容:
using(C# 参考)Visual Studio 2010 其他版本 2(共 4)对本文的评价是有帮助 - 评价此主题
using 关键字有两个主要用途:
作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。 请参见 using 指令。
作为语句,用于定义一个范围,在此范围的末尾将释放对象。 请参见 using 语句。请看清最后一句:用于定义一个范围,在此范围的末尾将释放对象。