分享

using的几种用法

 隐形的翅膀 2007-12-10

 

| |
windsails @ 2005年03月28日, 15:44

 

原来只知道using一般用来导入NameSpace,无意中发现该文档,遂转到柠檬树下

1.using指令。using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到。
例如:using System; 一般都会出现在*.cs中。

2.using别名。using + 别名 = 包括详细命名空间信息的具体的类型。
这种做法有个好处就是当同一个cs引用了两个不同的命名空间,但两个命名空间都包括了一个相同名字的类型的时候。当需要用到这个类型的时候,就每个地方都要用详细命名空间的办法来区分这些相同名字的类型。而用别名的方法会更简洁,用到哪个类就给哪个类做别名声明就可以了。注意:并不是说两个名字重复,给其中一个用了别名,另外一个就不需要用别名了,如果两个都要使用,则两个都需要用using来定义别名的。

例如:
1 using
System;
2 using aClass =
NameSpace1.MyClass;
3 using bClass =
NameSpace2.MyClass;
4

5 namespace NameSpace1
6
{
7     public class
MyClass
8
    {
9         public override string
ToString()
10
        {
11             return "You are in NameSpace1.MyClass"
;
12
        }
13
    }
14
}
15

16 namespace NameSpace2
17
{
18     class
MyClass
19
    {
20         public override string
ToString()
21
        {
22             return "You are in NameSpace2.MyClass"
;
23
        }
24
    }
25
}
26

27 namespace testUsing
28
{
29     using
NameSpace1;
30     using
NameSpace2;
31     /// <summary>

32     /// Class1 的摘要说明。
33     /// </summary>

34     class Class1
35
    {
36         /// <summary>

37         /// 应用程序的主入口点。
38         /// </summary>

39         [STAThread]
40         static void Main(string
[] args)
41
        {
42             //

43             // TODO: 在此处添加代码以启动应用程序
44            
//
45
           
46             aClass my1 = new
aClass();           
47
            Console.WriteLine(my1);
48             bClass my2 = new
bClass();
49
            Console.WriteLine(my2);
50             Console.WriteLine("Press any key"
);
51
            Console.Read();
52
        }
53
    }
54
}
55

3.using语句,定义一个范围,在范围结束时处理对象。
场景:
当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。
要达到这样的目的,用try...catch来捕捉异常也是可以的,但用using也很方便。
例如:

using (Class1 cls1 = new Class1(), cls2 = new Class1())
{
  
// the code using cls1, cls2

}
 
// call the Dispose on cls1 and cls2

这里触发cls1和cls2的Dispose条件是到达using语句末尾或者中途引发了异常并且控制离开了语句块。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多