using (Categories accessCategories = new Categories())
{
                return accessCategories.GetCategories(categoryId);
}和
Categories accessCategories = new Categories()
return accessCategories.GetCategories(categoryId);有区别吗?

解决方案 »

  1.   

    using 关键字,允许执行一个完整的代码块(使用 {}),当代码完成之后,将回自动处理合适的对象。该功能进一不简化了c#中的内存编程工作。如果不使用该功能,当我们完成使用信息之后,在另一个曾中还要手工处理这些信息。
    也就是对处理内存
      

  2.   

    using 用完后 自动释放
    Categories accessCategories = new Categories()
    自动回收
      

  3.   

    错了。。我想说的是using 用完后 马上释放
    Categories accessCategories = new Categories()
    自动回收
      

  4.   

    楼上的,你说的太专业了,我怕LZ听不懂啊,
    using (Categories accessCategories = new Categories())
    {
                    return accessCategories.GetCategories(categoryId);
    }
    等同于返回了accessCategories.GetCategories(categoryId);之后再执行一个
    accessCategories.Dispose()
      

  5.   

    using 只是简化了代码,并未节省实际代码
    对于你的语句编译器会自动编译为
    DataSet ds1;
    try
    {
        Categories accessCategories = new Categories();
        ds1 = accessCategories.GetCategories(categoryId);
    }
    finally
    {
        accessCategories.Dispose();
    }
    return ds1;
      

  6.   

    你可以用ildasm查看编译后的il代码,就清楚了。
      

  7.   

    让using中定义的对象在范围之后放了内存
      

  8.   

    using关键字有两个主要的使用:using 指示(Directive)   为一个命名空间设置一个别名或者将一个输入类型定义成另外一个命名空间。
    Creates an alias for a namespace or imports types defined in other namespaces. using 声明(Statement)   定义一个将被在最后处理的对象的范围
    Defines a scope at the end of which an object will be disposed. 所以从实现功能的角度讲是没有什么差别的。
      

  9.   

    using只是让你少写了代码而已,让程序代码变少