• 【转】C# using的三种使用方法


    原文地址http://www.cnblogs.com/fashui/archive/2011/09/29/2195061.html,感谢心茶前辈的总结。

    1.using指令

    using+命名空间,这种方法基本学习过C#的都用过,好处在于,写代码的时候不需要指定详细的命名空间

    using System.Windows.Media;
    using System.Windows.Media.Imaging;

    2.using语句

    是用来简化资源释放的,在一定的范围内有效,除了这个范围时,自动调用IDisposable释放掉,当然并不是所有的类都适用,只有实现了IDisposable接口的类才可以使用

     using (SqlConnection conn=new SqlConnection("Data Source=.;Initial Catalog=imageprocess;Integrated Security=True"))
                {
                    conn.Open();
                    using(SqlCommand cmd=conn.CreateCommand())
                    {
                        cmd.CommandText = "select count(*) from [user]";
                        int i = (int)cmd.ExecuteScalar();
                        MessageBox.Show(i.ToString());
                    }//这个括号结束的时候自动释放SqlCommand
                }//这个括号结束的时候自动释放SqlConnection

    除了using可以达到这个目的意外,try catch也是可以的。

    3.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();
            }
        }
    }

    至今第三种情况个人还没有用到过。

  • 相关阅读:
    geoserver 地图性能和缓存
    geoserver PostGIS的安装和使用
    geoserver 数据图层输出格式
    Centos7Yum安装配置指定版本nginx
    Centos7Yum安装PHP7.2
    CentOS7 中把默认yum源更换成163源
    安装配置Elasticserch的方法
    redis的持久化(RDB&AOF的区别)
    LayerDate渲染多个class出现闪现问题的解决
    explain分析SQL语句详解
  • 原文地址:https://www.cnblogs.com/ZXdeveloper/p/4107633.html
Copyright © 2020-2023  润新知