C#using关键字的使用方法

发布时间:2019-09-28 09:44:34 阅读:11

    这篇日志记录下C#using关键字的使用方法。

    Using的使用大致分别以下三种:

    1using指令(命名空间)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

     

    2using语句

    某些类型的非托管对象有数量限制或很耗费系统资源,在代码使用完它们后,尽可能快的释放它们时非常重要的。using语句有助于简化该过程并确保这些资源被适当的处置(dispose)。

    这里大致分为两种形式。

    1):using ResourceType Identifier = Expression Statement

    Using表达式 

    圆括号中的代码分配资源,Statement是使用资源的代码

     using语句会隐式产生处置该资源的代码,其步骤为:

     a:分配资源

     b:Statement放进try

     c:创建资源的Dispose方法的调用,并把它放进finally

    // using 语句
                using (usings.factory fac = new usings.factory())
                {
                    fac.CreateProduct();
                }

     

    2):using (Expression)  Statement

    Using对象

    Expression 表示资源,Statement是使用资源,资源需要在using之前声明

    usings.factory facs = new usings.factory();
                // using 对象
                using (facs)
                {
                    facs.CreateProduct();
                }

     

    Factory类:

    namespace usings
    {
        public class factory : IDisposable
        {
            public void CreateProduct()
            {
                Console.WriteLine("创建了一个产品!");
            }
     
            public void Dispose()
            {
                Console.WriteLine("该对象销毁~");
            }
        }
    }

    这里需要说我遇到的一个小问题,如图所示:

    34343434.png

     

    解决方法很简单,自定义的类继承IDisposable类,实现其Dispose方法。

    具体如我上边的代码所示。

     

    3using别名

    using为命名空间或类型定义别名,当引入的多个命名空间包含相同名字的类型时,需要使用该类型时,可以通过using为其指定别名,使代码更加简洁,避免冲突。

    这里放上这次测试使用的全部代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    // 别名
    using afactory = usings.usingsaaa.factory;
    using bfactory = usings.usingsbbb.factory;
     
     
    namespace usings
    {
        class Program
        {
            static void Main(string[] args)
            {
                // using 语句
                using (usings.factory fac = new usings.factory())
                {
                    fac.CreateProduct();
                }
     
                Console.WriteLine("------------------------------------------");
     
                usings.factory facs = new usings.factory();
                // using 对象
                using (facs)
                {
                    facs.CreateProduct();
                }
     
                Console.WriteLine("------------------------------------------");
     
                // 别名
                afactory a = new afactory();  // 代替usingsaaa.factory
                a.CreateProduct();
     
                Console.WriteLine("------------------------------------------");
     
                bfactory b = new bfactory();   // 代替usingsbbb.factory  
                b.CreateProduct();
     
                Console.ReadKey();
            }
        }
     
        namespace usingsaaa
        {
            public class factory
            {
                public void CreateProduct()
                {
                    Console.WriteLine("aaa工厂创建了一个产品!");
                }
            }
        }
     
        namespace usingsbbb
        {
            public class factory
            {
                public void CreateProduct()
                {
                    Console.WriteLine("bbb工厂创建了一个产品!");
                }
            }
        }
     
     
        namespace usings
        {
            public class factory : IDisposable
            {
                public void CreateProduct()
                {
                    Console.WriteLine("创建了一个产品!");
                }
     
                public void Dispose()
                {
                    Console.WriteLine("该对象销毁~");
                }
            }
        }
    }

     

    以上就是对using关键字的一些总结。

    有好的建议,请在下方输入你的评论。

关键字C#