zoukankan      html  css  js  c++  java
  • 基础知识之

    C#里面Using有两种用法:

    1.作为指令。

    •  using+命名空间,导入其他命名空间中定义的类型,这样可以在程序中直接用命名空间中的类型,不必指定命名空间;

    命名空间是.NET程序在逻辑上的组织结构,而并非实际的物理结构,是一种避免类名冲突的方法,用于将不同的数据类型组合划分的方式。

    using System;
    •  using + 别名 = 命名空间,为命名空间或类型创建别名。


    别名的好处是:当同一个文件下引用了不同的两个命名空间,但这两个命名空间都包括了一个相同名字的类型时,可以用别名的形式引用,这样可以方便使用。 

    以using创建别名,有效的解决了这种可能的命名冲突,尽管我们可以通过类型全名称来加以区分,但是这显然不是最佳的解决方案,using使得这一问题迎刃而解,不费丝毫功夫,同时在编码规范上看来也更加的符合编码要求。

    using aClass = NameSpace1.MyClass;
    using bClass = NameSpace2.MyClass;

    2.作为语句。

    • 于定义一个范围,在此范围的末尾将释放对象,

    C# 通过 .Net Framework 公共语言运行库(CLR)自动释放用于存储不再需要的对象的内存。内存的释放具有不确定性;

    一旦CLR决定执行垃圾回收,就会释放内存。但是,通常最好尽快释放诸如:文件句柄和网路连接这样的有限资源。

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

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

    using System;
    class C :
    IDisposable
    {
        public void UseLimitedResource()
        {
            Console.WriteLine("Usinglimitedresource...");
        }
        void IDisposable.Dispose()
        {
            Console.WriteLine("Disposinglimitedresource.");
        }
    }
    class Program
    {
        static void Main()
        {
            using (C c = new C())
            {
                c.UseLimitedResource();
            }
            Console.WriteLine("Nowoutsideusingstatement.");
            Console.ReadLine();
        }
    }

    结果如下:

    • Dispose方法用于清理对象封装的非托管资源,而不是释放对象的内存,对象的内存依然由垃圾回收器控制。
    •  程序在达到using语句末尾时退出using块,而如果到达语句末尾之前引入异常则有可能提前退出。

    总结:

    using可以用于引入命名空间;用于别名;用于定义资源范围。 

  • 相关阅读:
    第七周总结
    第六周总结
    第五周总结
    第四周总结
    第三周总结
    第二周总结
    第一周总结
    《需求分析和系统设计》阅读笔记三
    《需求分析和系统设计》阅读笔记二
    Linux——error while loading shared libraries 的解决方法
  • 原文地址:https://www.cnblogs.com/SweetMemory/p/7160115.html
Copyright © 2011-2022 走看看