号外号外: 原[图享网]更名为 码友网(codedefault.com) 啦,感谢大家一路上的陪伴与支持。代码的世界里,码友网与大家一起同行!

C#中的using关键字是什么?什么地方使用using?

C#开发 作者: Rector 4133阅读 0评论 0收藏 收藏本文 编辑

郑重申明:本文未经许可,禁止任何形式转载

C#中的using关键字是什么?

我们需要明确:using是C#语言中的一个关键字。

所以在C#的编码过程中我们是不能直接使用using这个字符串来声明变量名的。

什么地方使用using?

在C#的编码中using大致有两种使用场景:

1.可以使用using关键字来引入命名空间

首先在Visual Studio中创建一个名为UsingDemo的类库项目,IDE会自动为我们创建一个同名(UsingDemo)的解决方案,再在项目中新建一个类,取名Blog.cs,示例代码片段:

/*此处使用了using 关键字来引入System命名空间
 *注意:System命名空间的.NET Framework库自带的命名空间
 *     所以,只在项目中引用了System这个类库,就可以在这里直接使用using来引入
 *     在新建C#项目类库项目时,IDE默认是引入了System类库的
 */
using System;

/*此处的UsingDemo就是自定义的命名空间
 *我们可以在其他引用了UsingDemo这个项目的文件中使用using来引入UsingDemo这个命名空间
 */
namespace UsingDemo
{
  /// <summary>
  /// 声明一个名为Blog的类
  /// </summary>
  public class Blog
  {
    public int Id { get; set; }
    public string Title { get; set; }
    public string Post { get; set; }
    public DateTime CreatedOn { get; set; }
  }
}

在代码片段中,我们首先使用using关键字来引入System这个命名空间,在这里using就是起到引入指定命名空间的作用。

说明:示例中的namespace即声明了一个命名空间,上面的示例即声明了一个名为”UsingDemo”的命名空间,我们可以在其他引用了UsingDemo这个项目的文件中使用using来引入UsingDemo这个命名空间。

再在UsingDemo解决方案中新建一个名为:UsingDemo.Client的控制台应用程序项目。

在UsingDemo.Client的项目的”引用”中右键单击”添加引用”,在弹出的”引用管理器”中点击”解决方案”选项卡,勾选我们上面创建的”UsingDemo”项目。

这样,我们就在UsingDemo.Client控制台应用程序项目中成功引用了”UsingDemo”这个项目。

那么,我们就可以在UsingDemo.Client项目的cs文件中使用using关键字来引入”UsingDemo”这个命名空间,如下代码示例片段:

using System;
//使用using关键字来引入我们自定义的命名空间--UsingDemo
using UsingDemo;

namespace UsingDemo.Client
{
  class Program
  {
    static void Main(string[] args)
    {
      //实例化一个Blog类
      var blog = new Blog
      {
        Id = 1,
        Title = "博客标题",
        Post = "博客内容",
        CreatedOn = DateTime.Now
      };
      Console.WriteLine("Title:{0}", blog.Title);
      Console.WriteLine("-----------------------------------------");
      Console.WriteLine("Post:{0}", blog.Post);
      Console.WriteLine("-----------------------------------------");
      Console.WriteLine("CreatedOn:{0}", blog.CreatedOn);
      Console.WriteLine("-----------------------------------------");
      Console.ReadKey();
    }
  }
}

运行结果如图:using-demo-1

好了,以上就是对using关键字引入命名空间的使用的示例说明。2.using语句块

using语句块可以很好地为我们管理资源。

在C#和其他托管语言中,没有自动、决定性的析构方式,而是有一个垃圾收集器,它会在未来的某个时刻释放资源。它是非决定性的,因为我们不能确定这个过程在什么时候发生。

下面以连接数据库为例来说明使用using语句块的好处。

在数据库的操作上,我们需要先定义数据库的连接字符串,再打开连接进行相应的数据操作,使用完数据库连接后,我们还得把这个连接关闭掉。看一下不用using语句块的场景:

try
      {
        //定义数据库连接字符串
        var strConn = "数据库连接字符串";
        //定义并实例化一个连接类
        var conn = new SqlConnection(strConn);

        //打开数据库连接
        conn.Open();

        //相应的数据库操作和业务逻辑处理

        //手动关闭数据库连接(注意:数据库连接使用之后一定记得关闭)
        conn.Close();
      }
      catch (Exception e)
      {
        //处理异常
      }

在以上代码片段中,我们必须手动去关闭数据库的连接以及手动使用try…catch语句块来处理异常。那么如果使用using语句块会如何呢?也是一样,看示例代码片段:

//定义数据库连接字符串
      var strConn = "数据库连接字符串";
      using (var conn = new SqlConnection(strConn))
      {
        //打开数据库连接
        conn.Open();

        //相应的数据库操作和业务逻辑处理

}

在这个示例中,无论块是如何退出的,using子句都会确保关闭数据库连接。

查看一下连接类的Dispose()方法的IL代码,它们都检查连接对象的当前状态,如果其状态为打开,就调用Close()方法。

浏览.NET程序 集的一个强大工具是Reflector(可以从/www.aisto.com/roeder/dotnet/上获得)。这个工具允许查看任何.NET方法 的IL代码,还可以把IL代码反编译为源代码,让我们轻松地确定给定的方法的作用。

另外,如果在using块中出现了异常,using子句就会确保在资源上调用IDisposable.Dispose方法,在本例中将确保总是关闭数据库连接。这样,与必须确保在异常子句中关闭连接相比,代码的可读性更高。

最后,如果编写一个封装资源的类,无论该资源是什么,都应实现IDisposable接口,关闭资源。这样,任何使用该类的代码都可以利用using()语句,以确保资源被释放。

阅读了该文章的人还浏览了...

本文永久链接码友网 » C#中的using关键字是什么?什么地方使用using?

发布于: 2015-09-07 22:38:00
分享扩散:

文章评论

获取验证码