asp.net using的三种使用方法

作者:袖梨 2022-06-25

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

例如:using System;

using System.Data;

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

场景:

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

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


比如,

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using aClass = ConsoleApplication1.MyClass;
using bClass = ConsoleApplication2.MyClass;
namespace ConsoleApplication1
{
    public
class MyClass
    {
        public
override
string ToString()
        {
            return "You are in ConsoleApplication1.MyClass";
        }
    }
    class TestUsing
    {
    }
}
namespace ConsoleApplication2
{
    class MyClass
    {
        public
override
string ToString()
        {
            return "You are in 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.WriteLine("ress any key");
            Console.Read();
        }
    }
}


using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))

{

dt.Load(sdr); //此处用到sdr对象

} //此处释放sdr对象,并关闭connection对象连接


public
static DataTable GetTable(string sql, int executeTimeOut, string connStringName)
        {
            DataTable dtRet = new DataTable();
            using (SqlConnection sc = new SqlConnection(connStringName))
            {
                using (SqlDataAdapter sqa = new SqlDataAdapter(sql, sc))
                {
                    sqa.SelectCommand.CommandTimeout = executeTimeOut;
                    sqa.Fill(dtRet);                 
                    return dtRet;
                }
            }
        }


在这段代码中,sdr对象包含在小括号中,说明当using下的这段代码不管是执行成功或失败,只要离开了这段代码,会自动调用sdr对象的Dispose方法。CommandBehavior.CloseConnection的作用是当command对象释放时,connection也跟着关闭。它跟下面这段代码效果是一致的:

 

        Try
            conn.Open()
            Return cmd.ExecuteNonQuery()
            cmd.Parameters.Clear()
        Catch ex As Exception
            Return False
        Finally
            '关闭数据库教程连接,销毁cmd对象
            If Not IsNothing(conn) Then
                conn.Close()
                conn = Nothing
            End If
            If Not IsNothing(cmd) Then
                cmd.Dispose()
                cmd = Nothing
            End If
        End Try

相关文章

精彩推荐