这个using是什么意思?

tingkerling 2003-06-30 11:00:20
这是.net的那套工具所带的网上书店的代码中的一段,
using (Books bookDataAccess = new Books())
{
BookData retVal = null;

switch (searchType)
{
case BookData.SearchTypeEnum.Author:
retVal = bookDataAccess.GetBooksByAuthor(searchText);
break;
case BookData.SearchTypeEnum.ISBN:
retVal = bookDataAccess.GetBooksByISBN(searchText);
break;
case BookData.SearchTypeEnum.Subject:
retVal = bookDataAccess.GetBooksBySubject(searchText);
break;
case BookData.SearchTypeEnum.Title:
retVal = bookDataAccess.GetBooksByTitle(searchText);
break;
default:
ApplicationAssert.Check(false, string.Format("searchType {0} is not valid", searchType.ToString()), ApplicationAssert.LineNumber);
break;
}

return retVal;
}
这里的using和一般使用的方式不太一样,那位大侠告诉我在这里面为什么要使用using。
...全文
131 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你说的这个using语句定义了一个语句块,所有包括在这个块中的内容,定义这个语句块的时候可以初始化一个对象,在这个块中使用这个对象。
当这个块结束的时候(即编译器遇到"}"这个符号的时候),将强行把using中初始化的那个对象在内存中删除。
所以说using语句块可以实例化对象(不止一个)在块中使用这个对象,并且保证在结束的时候从内存中删除。
使用using的时机是使用非常耗系统资源,并且存在时间很短的对象的时候,对提高性能有好处,如大的数组,存放很多内容的DataTable,调用windowsCOM对象的时候可用。
houjianxun 2003-06-30
  • 打赏
  • 举报
回复
using 指令有两个用途:
创建命名空间的别名(using 别名)。
允许在命名空间中使用类型,例如,不必限定该命名空间中的类型使用(using 指令)。

using 语句定义一个范围,在此范围的末尾将处理对象
houjianxun 2003-06-30
  • 打赏
  • 举报
回复
using 指令有两个用途:
创建命名空间的别名(using 别名)。
允许在命名空间中使用类型,例如,不必限定该命名空间中的类型使用(using 指令)。

using 语句定义一个范围,在此范围的末尾将处理对象
luckysusan 2003-06-30
  • 打赏
  • 举报
回复
帮助里面的:



using 语句定义一个范围,在此范围的末尾将处理对象。

using (expression | type identifier = initializer)
{
}
此处:

expression
希望在退出 using 语句时调用 Dispose 的表达式。
type
identifier 的类型。
identifier
type 类型的名称或标识符。定义一个以上 type 类型的identifier 是可以的。在每一个 identifier = initializer 的前边都有一个逗号。
initializer
创建对象的表达式。
备注
在 using 语句中创建一个实例,确保退出 using 语句时在对象上调用 Dispose。当到达 using 语句的末尾,或者如果在语句结束之前引发异常并且控制离开语句块,都可以退出 using 语句。

实例化的对象必须实现 System.IDisposable 接口。

示例
// cs_using_statement.cs
// compile with /reference:System.Drawing.dll
using System.Drawing;
class a
{
public static void Main()
{
using (Font MyFont = new Font("Arial", 10.0f), MyFont2 = new Font("Arial", 10.0f))
{
// use MyFont and MyFont2
} // compiler will call Dispose on MyFont and MyFont2

Font MyFont3 = new Font("Arial", 10.0f);
using (MyFont3)
{
// use MyFont3
} // compiler will call Dispose on MyFont3

}
}
luckysusan 2003-06-30
  • 打赏
  • 举报
回复
using 关键字有两个主要用途:

using 指令 创建命名空间的别名。
using 语句 定义一个范围,在此范围末尾将处理对象。

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧