using(C# 参考

来源:互联网 发布:opengl es2.0编程指南 编辑:程序博客网 时间:2024/04/30 14:27

using 关键字有两个主要用途:

  • 作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。请参见 using 指令

  • 作为语句,用于定义一个范围,在此范围的末尾将释放对象。请参见 using 语句

    using 指令(C# 参考)

    using 指令有两个用途:

    • 允许在命名空间中使用类型,这样,您就不必在该命名空间中限定某个类型的使用:

      复制
      using System.Text;
    • 为命名空间或类型创建别名。

      复制
      using Project = PC.MyCompany.Project;

    using 关键字还用来创建 using 语句,此类语句定义将在何时释放对象。有关更多信息,请参见 using 语句

    备注

    using 指令的范围限制为包含它的文件。

    创建 using 别名,以便更易于将标识符限定到命名空间或类型。

    创建 using 指令,以便在命名空间中使用类型而不必指定命名空间。using 指令不为您提供对嵌套在指定命名空间中的任何命名空间的访问。

    命名空间分为两类:用户定义的命名空间和系统定义的命名空间。用户定义的命名空间是在代码中定义的命名空间。若要查看系统定义的命名空间的列表,请参见 .NET Framework 类库参考

    有关引用其他程序集中的方法的示例,请参见创建和使用 C# DLL

    示例 1

    下面的示例显示了如何为命名空间定义和使用 using 别名:

    复制
    namespace PC{    // Define an alias for the nested namespace.    using Project = PC.MyCompany.Project;    class A     {        void M()        {            // Use the alias            Project.MyClass mc = new Project.MyClass();        }    }    namespace MyCompany    {        namespace Project        {            public class MyClass{}        }    }}
    示例 2

    下面的示例显示了如何为类定义 using 指令和 using 别名:

    复制
    // cs_using_directive2.cs// Using directive.using System;   // Using alias for a class.using AliasToMyClass = NameSpace1.MyClass;   namespace NameSpace1 {    public class MyClass     {        public override string ToString()         {            return "You are in NameSpace1.MyClass";        }    }}namespace NameSpace2 {    class MyClass     {    }}namespace NameSpace3 {    // Using directive:    using NameSpace1;    // Using directive:    using NameSpace2;       class MainClass    {        static void Main()         {            AliasToMyClass somevar = new AliasToMyClass();            Console.WriteLine(somevar);        }    }}
    输出

    You are in NameSpace1.MyClass
    C# 语言规范

    有关更多信息,请参见 C# 语言规范中的以下各章节:

  •  

    using 语句(C# 参考)

    定义一个范围,将在此范围之外释放一个或多个对象。

    语法

    复制
            using (Font font1 = new Font("Arial", 10.0f)){}
    备注

    C# 通过 .NET Framework 公共语言运行库 (CLR) 自动释放用于存储不再需要的对象的内存。内存的释放具有不确定性;一旦 CLR 决定执行垃圾回收,就会释放内存。但是,通常最好尽快释放诸如文件句柄和网络连接这样的有限资源。

    using 语句允许程序员指定使用资源的对象应当何时释放资源。为 using 语句提供的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。

    可以在到达 using 语句的末尾时,或者在该语句结束之前引发了异常并且控制权离开语句块时,退出 using 语句。

    可以在 using 语句中声明对象(如上所示),或者在 using 语句之前声明对象,如下所示:

    复制
    Font font2 = new Font("Arial", 10.0f);using (font2){    // use font2}

    可以有多个对象与 using 语句一起使用,但是必须在 using 语句内部声明这些对象,如下所示:

    复制
            using (Font font3 = new Font("Arial", 10.0f),            font4 = new Font("Arial", 10.0f)){    // Use font3 and font4.}
    示例

    下面的示例显示用户定义类可以如何实现它自己的 Dispose 行为。注意类型必须从 IDisposable 继承。

    复制
    using System;class C : IDisposable{    public void UseLimitedResource()    {        Console.WriteLine("Using limited resource...");    }    void IDisposable.Dispose()    {        Console.WriteLine("Disposing limited resource.");    }}class Program{    static void Main()    {        using (C c = new C())        {            c.UseLimitedResource();        }        Console.WriteLine("Now outside using statement.");        Console.ReadLine();    }}
    文章转自:http://msdn.microsoft.com/zh-cn/library/zhdeatwt(v=VS.80).aspx
    原创粉丝点击