给定这段代码:using(varconn=newSqlConnection("...")){conn.Open();using(varcmd=conn.CreateCommand()){cmd.CommandText="...";using(varreader=cmd.ExecuteReader()){while(reader.Read()){//...}}}}我习惯于为我的数据访问编写try/catch/finallyblock,但是,我正在接触“使用”,这似乎是一种更简单的方法。但是,我正在尝试弄清楚如何捕获可能发生的异常。能否请您举例说明如何捕获异常?编辑添加:我被引导相信“使用
给定这段代码:using(varconn=newSqlConnection("...")){conn.Open();using(varcmd=conn.CreateCommand()){cmd.CommandText="...";using(varreader=cmd.ExecuteReader()){while(reader.Read()){//...}}}}我习惯于为我的数据访问编写try/catch/finallyblock,但是,我正在接触“使用”,这似乎是一种更简单的方法。但是,我正在尝试弄清楚如何捕获可能发生的异常。能否请您举例说明如何捕获异常?编辑添加:我被引导相信“使用
using(DbConnectionconn=newDbConnection()){//dostuffwithdatabase}usingblock会调用conn.Close()吗? 最佳答案 是的,它会;DbConnection.Dispose()的实现调用Close()(它的派生实现也是如此)。 关于c#-usingblock会关闭数据库连接吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q
using(DbConnectionconn=newDbConnection()){//dostuffwithdatabase}usingblock会调用conn.Close()吗? 最佳答案 是的,它会;DbConnection.Dispose()的实现调用Close()(它的派生实现也是如此)。 关于c#-usingblock会关闭数据库连接吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q
如果我这样写,我不确定是否需要在使用的对象上调用Flush():using(FileStream...)using(CryptoStream...)using(BinaryWriter...){//dosomething}它们总是自动刷新吗?using语句何时刷新它们,何时不刷新它们(如果可能发生)? 最佳答案 一旦离开usingblock的作用域,流就会关闭并释放。Close()调用Flush(),因此您不需要手动调用它。 关于c#-如果您使用“using”语句,是否需要在流或写入器上
如果我这样写,我不确定是否需要在使用的对象上调用Flush():using(FileStream...)using(CryptoStream...)using(BinaryWriter...){//dosomething}它们总是自动刷新吗?using语句何时刷新它们,何时不刷新它们(如果可能发生)? 最佳答案 一旦离开usingblock的作用域,流就会关闭并释放。Close()调用Flush(),因此您不需要手动调用它。 关于c#-如果您使用“using”语句,是否需要在流或写入器上
我今天在浏览同事的c#代码时发现了以下内容:using(MemoryStreamdata1=newMemoryStream())using(MemoryStreamdata2=newMemoryStream()){//Lotsofcode..........}我一直看到using语句后跟一对定义对象生命范围的花括号。我写代码的同事说,不需要data1using语句的花括号,代码的作用就好像它们存在并嵌套data2using语句。那么,当省略花括号时会发生什么? 最佳答案 是的,您也可以将它们放在一个using语句中:using(Me
我今天在浏览同事的c#代码时发现了以下内容:using(MemoryStreamdata1=newMemoryStream())using(MemoryStreamdata2=newMemoryStream()){//Lotsofcode..........}我一直看到using语句后跟一对定义对象生命范围的花括号。我写代码的同事说,不需要data1using语句的花括号,代码的作用就好像它们存在并嵌套data2using语句。那么,当省略花括号时会发生什么? 最佳答案 是的,您也可以将它们放在一个using语句中:using(Me
我刚刚安装了resharper,它让我知道我在每个类中实际没有使用的命名空间。这让我想到了一个问题-保留这些未使用的using声明实际上有任何开销吗?这只是代码紧凑的问题,还是在我不需要时调用这些命名空间会影响性能? 最佳答案 来自TheC#Team'sanswerstofrequentlyaskedquestions:Whenyouaddassemblyreferencesormakeuseofthe'using'keyword,csc.exewillignoreanyassemblywhichyouhavenotactually
我刚刚安装了resharper,它让我知道我在每个类中实际没有使用的命名空间。这让我想到了一个问题-保留这些未使用的using声明实际上有任何开销吗?这只是代码紧凑的问题,还是在我不需要时调用这些命名空间会影响性能? 最佳答案 来自TheC#Team'sanswerstofrequentlyaskedquestions:Whenyouaddassemblyreferencesormakeuseofthe'using'keyword,csc.exewillignoreanyassemblywhichyouhavenotactually