找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1720|回复: 12

C# 中什么是 using 指令, using 的用法

 火.. [复制链接]
  • 打卡等级:常驻代表
  • 打卡总天数:34
  • 打卡月天数:6
  • 打卡总奖励:9027
  • 最近打卡:2025-12-17 23:15:51

2823

主题

541

回帖

2万

积分

管理员

积分
22569
发表于 2021-8-24 19:30:35 | 显示全部楼层 |阅读模式
1.using 指令
using 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到。




例如:


1
2
3
using System;
using System.Collections.Generic;
using System.Text;


2.using 别名
using 别名=包括详细命名空间信息的具体的类型。
这种做法有个好处就是当同一个cs引用了两个不同的命名空间,但两个命名空间都包括了一个相同名字的类型的时候。当需要用到这个类型的时候,就每个地方都要用详细命名空间的办法来区分这些相同名字的类型。而用别名的方法会更简洁,用到哪个类就给哪个类做别名声明就可以了。


注意:并不是说两个名字重复,给其中一个用了别名,另外一个就不需要用别名了,如果两个都要使用,则两个都需要用using来定义别名的。


例如:


using System;
using aClass = ConsoleApplication1.MyClass;
using bClass = ConsoleApplication2.MyClass;

namespace ConsoleApplication1
{
    public class MyClass
    {
        public override string ToString()
        {
            return "ConsoleApplication1.MyClass";
        }
    }
}

namespace ConsoleApplication2
{
    public class MyClass
    {
        public override string ToString()
        {
            return "ConsoleApplication2.MyClass";
        }
    }
}

namespace TestUsing
{
    using ConsoleApplication1;
    using ConsoleApplication2;

    class ClassTestUsing
    {
        static void Main()
        {
            aClass my1 = new aClass();
            Console.WriteLine(my1);

            bClass my2 = new bClass();
            Console.WriteLine(my2);

            Console.Read();
        }
    }
}


3.using 语句,定义一个范围,在范围结束时处理对象


场景:


当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。


要达到这样的目的,用try...catch来捕捉异常也是可以的,但用using也很方便。




例如:




// 读取文本内容
public static string ReadDoc(string path)
{
    string result = "";
    using (StreamReader sr = new StreamReader(path))
    {
        result = sr.ReadToEnd();
    }
    return result;
}


来源:C#社区
原文:https://www.hicsharp.com/a/c16487e102f44a50835bd174950db8d5




工控课堂 www.gkket.com

0

主题

121

回帖

390

积分

注册会员

积分
390
发表于 2021-8-24 19:32:09 | 显示全部楼层
我顶,我顶,我顶顶顶
工控课堂 www.gkket.com

0

主题

163

回帖

379

积分

注册会员

积分
379
发表于 2021-8-24 20:17:10 | 显示全部楼层
加油,加油,不要沉下去,我是最热贴
工控课堂 www.gkket.com

0

主题

106

回帖

174

积分

新手上路

积分
174
发表于 2025-11-17 22:54:51 | 显示全部楼层
赞同 + 10086,完全说出了我的想法!
工控课堂 www.gkket.com
  • 打卡等级:无名新人
  • 打卡总天数:2
  • 打卡月天数:0
  • 打卡总奖励:531
  • 最近打卡:2025-03-06 11:01:57

0

主题

126

回帖

943

积分

中级会员

积分
943
发表于 2025-11-17 23:12:03 | 显示全部楼层
这评论区卧虎藏龙,个个都是人才!
工控课堂 www.gkket.com

0

主题

89

回帖

139

积分

新手上路

积分
139
发表于 2025-11-18 00:26:03 | 显示全部楼层
水个经验,楼主加油,支持你~
工控课堂 www.gkket.com

0

主题

102

回帖

157

积分

新手上路

积分
157
发表于 2025-11-18 02:02:32 | 显示全部楼层
原来还有这种操作,长见识了!
工控课堂 www.gkket.com

0

主题

556

回帖

1086

积分

中级会员

积分
1086
发表于 2025-11-18 02:14:36 | 显示全部楼层
已转发给朋友,一起感受这份快乐~
工控课堂 www.gkket.com

0

主题

86

回帖

141

积分

新手上路

积分
141
发表于 2025-11-18 02:14:52 | 显示全部楼层
来凑个热闹,增加点人气~
工控课堂 www.gkket.com

0

主题

91

回帖

165

积分

新手上路

积分
165
发表于 2025-11-18 02:15:31 | 显示全部楼层
水贴也要有仪式感,我先来打卡~
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 21:06 , Processed in 0.095132 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表