.NET杂项

来源:互联网 发布:sql基础教程 第2版 编辑:程序博客网 时间:2024/05/04 00:32

一、using的几种用法

      1.引用命名
       using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名
       空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到。
       例如:using System;     一般都会出现在*.cs中。
       2.为命名空间指定别名
        using + 别名 = 包括详细命名空间信息的具体的类型。
        这种做法有个好处就是当同一个cs引用了两个不同的命名空间,但两个命名空间都包括了一个相同名字的类型
        的时候。当需要用到这个类型的时候,就每个地方都要用详细命名空间的办法来区分这些相同名字的类型。而
        用别名的方法会更简洁,用到哪个类就给哪个类做别名声明就可以了。注意:并不是说两个名字重复,给其中
        一个用了别名,另外一个就不需要用别名了,如果两个都要使用,则两个都需要用using来定义别名的。

        例如:
             using System;
             using aClass = NameSpace1.MyClass;
             using bClass = NameSpace2.MyClass;

             namespace NameSpace1
                {
                      public class MyClass
                        {
                            public override string ToString()
                                {
                                         return "You are in NameSpace1.MyClass";
                                }
                        }
                }

           namespace NameSpace2
              {
                 class MyClass
                    {
                        public override string ToString()
                            {
                                 return "You are in NameSpace2.MyClass";
                            }
                    }
            }

         namespace testUsing
           {
                  using NameSpace1;
                  using NameSpace2;
                  /// <summary>
                 /// Class1 的摘要说明。
                /// </summary>
               class Class1
                   {
                       /// <summary>
                       /// 应用程序的主入口点。
                      /// </summary>
                      [STAThread]
                       static void Main(string[] args)
                           {
                              //
                              // TODO: 在此处添加代码以启动应用程序
                              //
           
                                 aClass my1 = new aClass();           
                                Console.WriteLine(my1);
                                 bClass my2 = new bClass();
                                Console.WriteLine(my2);
                               Console.WriteLine("Press any key");
                               Console.Read();
                         }
                }
          }


          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语句末尾或者中途引发了异常并且控制离开了语句块
          这在数据库操作中用的比较多,例如
                using (SqlConnection conn=new SqlConnection(connStr))
                   {
                          conn.Open();
                   } //运行到这里,conn的资源就被释放。
  
原创粉丝点击