zoukankan      html  css  js  c++  java
  • using(C#)

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

    例如:using System; 一般都会出现在*.cs中。

    关于:命名空间 

    命名空间是.NET程序在逻辑上的组织结构,而并非实际的物理结构,是一种避免类名冲突的方法,用于将不同的数据类型组合划分的方式。例如,在.NET中很多的基本类型都位于System命名空间,数据操作类型位于System.Data命名空间,

    2.using别名。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();
            }
        }
    }

    using为命名空间创建别名的用法规则为:

    using alias = namespace | type;  

    其中namespace表示创建命名空间的别名;而type表示创建类型别名。例如,在.NET Office应用中,常常会引入Microsoft.Office.Interop.Word.dll程序集,在引入命名空间时为了避免繁琐的类型输入,我们通常为其创建别名如下:

    using MSWord = Microsoft.Office.Interop.Word;  

    这样,就可以在程序中以MSWord来代替Microsoft.Office.Interop.Word前缀

    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

     但是当对象使用using关键字的时候,必须实现IDisposable接口。其实using的使用和try-catch-finaly中,在finaly代码域调用Disposable方法效果一样。注意Using不能使用多个不同的类。

    Class1 f = new Class1();   
    try   
    { //执行代码   
    }   
    catch()   
    {   
    //异常处理   
    }   
    finally   
    {   
    f.Disposable();   
    } 

    资源是实现 System.IDisposable 的类或结构,它包含名为 Dispose 的单个无参数方法。正在使用资源的代码可以调用 Dispose 以指示不再需要该资源。如果不调用 Dispose,则最终将因为垃圾回收而发生自动处置。

    from:

    http://www.cnblogs.com/fashui/archive/2011/09/29/2195061.html

    http://developer.51cto.com/art/201105/263550.htm

  • 相关阅读:
    c++ CPO ADL
    c++ intrusive
    c++边界检查
    C++仿函数
    C++ RefBase
    c++ vector容器的尺寸问题
    关于调用约定
    C++学习之字符串类、容器
    C++异常
    Git常用命令大全,迅速提升你的Git水平
  • 原文地址:https://www.cnblogs.com/ttssrs/p/3082458.html
Copyright © 2011-2022 走看看