C#中using关键字的使用方法示例

 更新时间:2022年06月20日 10:48:46   作者:camellia  
在C#语句中,将using关键字作为一个语句时,该语句的作用是定义一个用大括号规定的范围,在该范围的末尾,系统会立即释放using后小括号内指定的对象,下面这篇文章主要给大家介绍了关于C#中using关键字使用的相关资料,需要的朋友可以参考下

这里记录下C#中using关键字的使用方法。

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

1 :using 指令(命名空间)

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

2 :using 语句

某些类型的非托管对象有数量限制或很耗费系统资源,在代码使用完它们后,尽可能快的释放它们时非常重要的。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("该对象销毁~");
        }
    }
}

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

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

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

3 :using 别名

用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#中using关键字使用的文章就介绍到这了,更多相关C# using关键字使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#实现用户自定义控件中嵌入自己的图标

    C#实现用户自定义控件中嵌入自己的图标

    这篇文章主要介绍了C#实现用户自定义控件中嵌入自己的图标,较为详细的分析了C#实现自定义控件中嵌入图标的具体步骤与相关实现技巧,需要的朋友可以参考下
    2016-03-03
  • C#编程和Visual Studio使用技巧(上)

    C#编程和Visual Studio使用技巧(上)

    C#是一门伟大的编程语言,与C++和Java相比,它的语法更简单,相对来说更好入门。Visual Studio作为.Net平台上最重量级的IDE,也通过不断的更新为开发者带来更出色的开发体验。本文将介绍10个C#编程和Visual Studio IDE使用技巧。
    2015-10-10
  • C#实现条形码识别的解决方案分享

    C#实现条形码识别的解决方案分享

    主流的识别库主要有ZXing.NET和ZBar,OpenCV 4.0后加入了QR码检测和解码功能,所以本文主要和大家分享了使用ZBar进行条形码识别的示例代码,需要的可以参考一下
    2023-07-07
  • C#多线程之Thread类详解

    C#多线程之Thread类详解

    这篇文章主要为大家详细介绍了C#多线程之Thread类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 详解C#使用AD(Active Directory)验证内网用户名密码

    详解C#使用AD(Active Directory)验证内网用户名密码

    这篇文章主要介绍了详解C#使用AD(Active Directory)验证内网用户名密码的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下
    2017-10-10
  • C#并行编程之数据并行Tasks.Parallel类

    C#并行编程之数据并行Tasks.Parallel类

    这篇文章介绍了C#并行编程之数据并行Tasks.Parallel类,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 利用C#实现合并Word文档功能

    利用C#实现合并Word文档功能

    合并Word文档可以快速地将多份编辑好的文档合在一起,避免复制粘贴时遗漏内容,以及耗费不必要的时间。本文将分为以下两部分介绍如何通过C#合并Word文档,并附上VB.NET代码供大家参考,希望对大家有所帮助
    2022-12-12
  • C#匿名委托和Java匿名局部内部类使用方法示例

    C#匿名委托和Java匿名局部内部类使用方法示例

    Java在嵌套类型这里提供的特性比较多,假设:Java的字节码只支持静态嵌套类,内部类、局部内部类和匿名局部内部类都是编译器提供的语法糖,这个假设目前没法验证(看不懂字节码),本文先来看一下C#是如何为我们提供的这种语法糖
    2013-11-11
  • macOS系统下Vscode的python配置教程

    macOS系统下Vscode的python配置教程

    这篇文章主要介绍了macOS系统下Vscode的python配置教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • C#使用log4net打日志

    C#使用log4net打日志

    本文主要介绍了C#使用log4net打日志,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02

最新评论