得确比较奇怪
要知道 vb的with endwith是从pascal中学来的(官方的报道,非本人胡编)而作为pascal的编译器作者,不在c#中引入这个特色
要知道 vb的with endwith是从pascal中学来的(官方的报道,非本人胡编)而作为pascal的编译器作者,不在c#中引入这个特色
解决方案 »
- C# 杀掉服务器中的进程
- 【附代码】Form的Show()方法,为何运行时导致出现后即消失,而ShowDialog()则不会?
- 这样的字符串怎么处理
- 求助:C#调用DLL输出的bitmap函数
- 为什么ComboBox.DropDownStyle为DownDown时DrawItem不响应
- C#如何操作Access的Ole字段.........
- ajax简单原理
- 输出到Asp.net上没有样式的问题。急
- WinForms不在System中吗?button1.Dock=System.WinForms.DockStyle.Top; 这句该放在哪里 才对?
- 请各位来帮我看下这段代码,分析一下啊。谢谢了
- 请教,有关vb或者asp调用c#组件~~~~~~~~~~~~
- Trace.Write()所写出的内容在哪个窗口呢?怎么也找不到?我是E文版的
{
//code.....
}
其用法比vb还要安全,因为对象用完后会自动消除。
因为在面向对象编程根本不必with,比如:ListBox.ObjectCollection o = ListBox1.Items;
o.Add("a");
o.Add("n");里面的o 不就已经具有with 了吗?
using (o){
o.Text = "ok";
o.ShowDialog();
}比用with 要安全的多,当using 体结束时,受实例的对象会自己消毁,这种用法显然比with 要灵活多了
但作为现代化的开发语言,
C#更注重代码的可靠性和可维护性,
这就是为什么在C#中在很多场合都强迫你使用全称或执行严格的类型检查,
这样可以有效避免混淆,并提高代码的可读性和可维护性。with有可能令代码名称作用域产生混淆,因此C#决定不采纳该语言特性。
它其实是C#对.NET Framework中IDisposable接口的一个直接支持。
类似的支持还有lock(等价于Threading.Moniter提供的线程锁定功能)等。引入IDisposable接口的主要目的是为了弥补由于.NET Runtime的自动内存管理机制,
即Garbage Collection(GC,垃圾收集器)所引入的对象对外部资源的超时引用问题。当对一个对象的引用(更确切说:强引用)全部消失时,
GC将在下次回收时才对其进行销毁,
其间如果对象仍有引用未释放的外部资源(如数据库连接、操作系统的资源等),
则该资源将有一段时间内处于无用的状态,
为了释放该资源,.NET提供两种机制:一是finalizer,二就是IDisposable。等等,有人爱听吗?爱听接着顶嘿嘿