• 关于using


    using(C# 参考) 

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

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

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


    -----------------
    using 指令(C# 参考) 

    using 指令有两个用途:

    • 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。

    • 为命名空间创建别名。

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

    using namespace;
    using alias = type|namespace;

    参数

    Alias

    您希望用来表示命名空间或类型的用户定义符号。然后,您就可以使用 alias 来表示命名空间名称。

    Type

    您想通过 alias 表示的类型。

    namespace

    您想通过 alias 表示的命名空间。或者是一个命名空间,它包含您想在无需指定完全限定名的情况下使用的类型。

    备注备注

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

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

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

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

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

    示例 1示例 1

    说明

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

    代码

                  using MyAlias = MyCompany.Proj.Nested;
    // Define an alias to represent a namespace.
    namespace MyCompany.Proj
    {
    public class MyClass
    {
    public static void DoNothing()
    {
    }
    }
    }
    示例 2示例 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

    ----------------------

    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();
    }
    }
  • 相关阅读:
    SqlServer存储过程调用接口
    Zend引擎探索 之 PHP中前置递增不返回左值
    在CentOS上为Docker开启SELinux
    PSR-4 自动加载器
    [译]漫画SELinux概念
    NodeMCU Builder, yet another NodeMCU IDE
    Mac OS X更新VirtualBox以后Genymotion无法启动的一种情况
    Win32API起始处的mov edi, edi与用户空间InlineHook
    DLL的导出函数重定向机制
    一个Win32API Trace Tool的设计与实现
  • 原文地址:https://www.cnblogs.com/huashanlin/p/729390.html
Copyright © 2020-2023  润新知