得确比较奇怪
要知道 vb的with endwith是从pascal中学来的(官方的报道,非本人胡编)而作为pascal的编译器作者,不在c#中引入这个特色

解决方案 »

  1.   

    using(ClassName instance)
    {
       //code.....
    }
    其用法比vb还要安全,因为对象用完后会自动消除。
      

  2.   

    jinus(燃冰), 请不要误导人家。
      

  3.   

    不错,with....end with在vb.net中是对对象的属性进行修改的快捷的方法
      

  4.   

    C# 的确有using 不过它的作用是指示对象的作用范围和VB的with 并不一样
    因为在面向对象编程根本不必with,比如:ListBox.ObjectCollection o = ListBox1.Items;
    o.Add("a");
    o.Add("n");里面的o 不就已经具有with 了吗?
      

  5.   

    又如;Form2 o = new Form2();
    using (o){
    o.Text = "ok";
    o.ShowDialog();
    }比用with 要安全的多,当using 体结束时,受实例的对象会自己消毁,这种用法显然比with 要灵活多了
      

  6.   

    VB过来的朋友要特别注意对象化这个词,波大精深 <- 错别字在对象化编程模式,= 号可以with 任何对象
      

  7.   

    其实with一开始主要是想可以给coder省些事,
    但作为现代化的开发语言,
    C#更注重代码的可靠性和可维护性,
    这就是为什么在C#中在很多场合都强迫你使用全称或执行严格的类型检查,
    这样可以有效避免混淆,并提高代码的可读性和可维护性。with有可能令代码名称作用域产生混淆,因此C#决定不采纳该语言特性。
      

  8.   

    另外关于using语句(不是指令噢),
    它其实是C#对.NET Framework中IDisposable接口的一个直接支持。
    类似的支持还有lock(等价于Threading.Moniter提供的线程锁定功能)等。引入IDisposable接口的主要目的是为了弥补由于.NET Runtime的自动内存管理机制,
    即Garbage Collection(GC,垃圾收集器)所引入的对象对外部资源的超时引用问题。当对一个对象的引用(更确切说:强引用)全部消失时,
    GC将在下次回收时才对其进行销毁,
    其间如果对象仍有引用未释放的外部资源(如数据库连接、操作系统的资源等),
    则该资源将有一段时间内处于无用的状态,
    为了释放该资源,.NET提供两种机制:一是finalizer,二就是IDisposable。等等,有人爱听吗?爱听接着顶嘿嘿