• C#中using的三种用法


    C#中using的三种用法
    发布:dxy 字体:[增加 减小] 类型:转载
    -
    -
    using 指令有两个用途:
    允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。
    为命名空间创建别名。
    using 关键字还用来创建 using 语句 定义一个范围,将在此范围之外释放一个或多个对象。
    请参见 using 语句。http://www.yaosansi.com/blog/article.asp?id=669

    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();
    }
    }
    C# 语言规范

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

    5.3.3.17 Using 语句

    8.13 using 语句

    请参见

    参考
    C# 关键字
    extern(C# 参考)
    命名空间关键字(C# 参考)
    using 指令(C# 参考)

    概念
    C# 编程指南
    命名空间(C# 编程指南)

    其他资源
    C# 参考
    实现 Finalize 和 Dispose 以清理非托管资源


    using namespace;
    using alias = type|namespace;
    参数
    Alias
    您希望用来表示命名空间或类型的用户定义符号。然后,您就可以使用 alias 来表示命名空间名称。
    Type
    您想通过 alias 表示的类型。
    namespace
    您想通过 alias 表示的命名空间。或者是一个命名空间,它包含您想在无需指定完全限定名的情况下使用的类型。
    备注
    using 指令的范围限制为包含它的文件。
    创建 using 别名,以便更易于将标识符限定到命名空间或类型。
    创建 using 指令,以便在命名空间中使用类型而不必指定命名空间。using 指令不为您提供对嵌套在指定命名空间中的任何命名空间的访问。
    命名空间分为两类:用户定义的命名空间和系统定义的命名空间。用户定义的命名空间是在代码中定义的命名空间。若要查看系统定义的命名空间的列表,请参见 .NET Framework 类库参考。
    有关引用其他程序集中的方法的示例,请参见创建和使用 C# DLL。
    示例 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
    说明
    下面的示例显示了如何为类定义 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
    本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/9294.htm

  • 相关阅读:
    【整理】close 和 shutdown 的原理
    【理解】 Error 10053和 Error 10054
    【转载】 socket recv 和 read
    【转载】socket 的 connect、listen、accept 和全连接队列、半连接队列的原理
    【原创】MySQL 生产环境备份还原
    【原创】【问题记录】系统管理员设置了系统策略,禁止此安装的最终解决办法
    【原创】rabbitmq 学习
    mvc, web mvc, spring web mvc 区别
    Spring 读取配置文件的俩种方式
    移动端web开发技巧和常见问题
  • 原文地址:https://www.cnblogs.com/xianyin05/p/1433078.html
Copyright © 2020-2023  润新知