zoukankan      html  css  js  c++  java
  • 【转载】C#中Using 的几种用法

    (1)引用命名空间 
    using作为引入命名空间指令的用法规则为: 
    using Namespace; 
    在.NET程序中,最常见的代码莫过于在程序文件的开头引入System命名空间,其原因在于System命名空间中封装了很多最基本最常用的操作。
    
    关于:命名空间 
    命名空间是.NET程序在逻辑上的组织结构,而并非实际的物理结构,是一种避免类名冲突的方法,用于将不同的数据类型组合划分的方式。例如,在.NET中很多的基本类型都位于System命名空间,数据操作类型位于System.Data命名空间, 
    
    (2)创建命名空间别名 
    
    using为命名空间创建别名的用法规则为: 
    using alias = namespace | type; 
    其中namespace表示创建命名空间的别名;而type表示创建类型别名。例如,在.NET Office应用中,常常会引入Microsoft.Office.Interop.Word.dll程序集,在引入命名空间时为了避免繁琐的类型输入,我们通常为其创建别名如下: 
    using MSWord = Microsoft.Office.Interop.Word; 
    这样,就可以在程序中以MSWord来代替Microsoft.Office.Interop.Word前缀,如果要创建Application对象,则可以是这样, 
    而且还有一个好处就是,在一个.CS文件中引入了不同的命名空间但是相同的类名的时候,用别名就可以解决这问题了。
    
    3)强制资源清理 
    用途:清理非托管资源,不受GC控制的资源。Using结束后会隐式的调用Disposable方法。 
    用法: 
    using (Class1 c = new Class1()) 
    { 
    }//清理非托管不受GC控制的资源 
    但是当对象使用using关键字的时候,必须实现IDisposable接口。其实using的使用和try-catch-finaly中,在finaly代码域调用Disposable方法效果一样。注意Using不能使用多个不同的类 
    Class1 f = new Class1(); 
    try 
    {                     //执行代码 
    } 
    catch() 
    { 
    //异常处理 
    } 
    finally 
    { 
    f.Disposable(); 
    }
    
    using 语句获取一个或多个资源,执行一个语句,然后处置该资源。     
    using 语句: 
    using ( 资源获取 ) 嵌入语句 
    资源获取: 
    局部变量声明 
    表达式 
    
    资源是实现 System.IDisposable 的类或结构,它包含名为 Dispose 的单个无参数方法。(如:截图2)正在使用资源的代码可以调用 Dispose 以指示不再需要该资源。如果不调用 Dispose,则最终将因为垃圾回收而发生自动处置。 
    
    如果资源获取的形式是局部变量声明,那么此局部变量声明的类型必须为System.IDisposable 或是可以隐式转换为 System.IDisposable 的类型。如果资源获取的形式是表达式,那么此表达式必须是 System.IDisposable 或是可以隐式转换为 System.IDisposable 的类型。 
    
    在资源获取中声明的局部变量必须是只读的,且必须包含一个初始值设定项。 
    
    using 语句被翻译成三个部分:获取、使用和处置。资源的使用隐式封闭在包含一个 finally 子句的 try语句中。此 finally 子句处置资源。如果获取了 null 资源,则不进行对 Dispose 的调用,也不引发任何异常。 
    
    例如,下列形式的 using 语句 
    
    using (R r1 = new R()) { 
    r1.F(); 
    } 
    完全等效于 
    
    R r1 = new R(); 
    try { 
    r1.F(); 
    } 
    finally { 
    if (r1 != null) ((IDisposable)r1).Dispose(); 
    } 
  • 相关阅读:
    为什么 PCB 生产时推荐出 Gerber 给工厂?
    Fedora Redhat Centos 有什么区别和关系?
    【KiCad】 如何给元件给元件的管脚加上划线?
    MCU ADC 进入 PD 模式后出现错误的值?
    FastAdmin 生产环境升级注意
    EMC EMI 自行评估记录
    如何让你的 KiCad 在缩放时不眩晕?
    KiCad 5.1.0 正式版终于发布
    一次单片机 SFR 页引发的“事故”
    java基础之集合
  • 原文地址:https://www.cnblogs.com/successliwei/p/2329134.html
Copyright © 2011-2022 走看看