问题标签 [using-statement]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
31913 浏览

c# - 在 using 语句中引发异常时,是否仍会调用 Dispose?

在下面的示例中,如果在using语句中引发异常,连接是否会关闭并释放?

我知道下面的代码将确保它确实如此,但我很好奇 using 语句是如何做到的。

有关的:

引发异常时确保关闭 SQL 连接的正确方法是什么?

0 投票
4 回答
487 浏览

namespaces - 在命名空间声明之后立即添加“使用命名空间”是否可以接受?

我有一个包含一些类型定义的小命名空间,我用它来使我的代码看起来更干净。但是,我不想为每个使用其中一种类型的文件添加“使用命名空间...”行,毕竟我已经为文件添加了#include。


我的文件.cpp:


typedefs.h:


在命名空间声明之后立即添加“使用命名空间”行是否可以接受?如果不是,为什么不呢?

0 投票
6 回答
1966 浏览

.net - 使用的目的是什么?

DUPE:在 C# 中使用“使用”

我见过人们使用以下内容,我想知道它的目的是什么?是不是对象在被垃圾收集使用后被销毁了?

例子:

0 投票
7 回答
232 浏览

c# - 滥用语言

前段时间,我在实现 JavaScript 代码生成框架时不得不解决某个 C# 设计问题。我提出的解决方案之一是以完全不同的方式使用“使用”关键字(如果你愿意的话,这是骇人听闻的)。我将它用作构建分层代码结构的语法糖(好吧,本来它就是一个)。看起来像这样的东西:

它之所以有效,是因为 Function 和 While 方法返回 IDisposable 对象,该对象在处置时会告诉构建器关闭当前范围。这样的东西对于任何需要硬编码的树状结构都有帮助。

你认为这样的“黑客”是合理的吗?因为您可以说,例如,在 C++ 中,模板和运算符重载等许多特性都被过度滥用了,而且这种行为受到许多人的鼓励(例如 boost)。另一方面,您可以说许多现代语言不鼓励这种滥用,并为您提供特定的、更受限制的功能。

当然,我的例子有些深奥,但真实。那么您如何看待具体的黑客攻击和整个问题?你遇到过类似的困境吗?你能容忍多少虐待?

0 投票
9 回答
4011 浏览

c# - return 语句可以阻止 using 语句关闭与数据库的连接吗?

当我创建临时表时,我收到一条错误消息,告诉我临时表已经存在。临时表对会话来说是唯一的,所以我的连接似乎没有正确关闭,我认为它可能与我在 using 语句中的 return 语句有关。

我有以下代码:

我在几个地方使用这种代码来创建一个同名的临时表。

不幸的是,我收到以下错误:There is already an object named '#MyTempTable' in the database.

现在,我知道临时表对于会话是唯一的,因此一旦会话关闭,它就会消失。

我认为有三件事可能会导致这种情况......

  1. 我需要调用 connection.Close()
  2. 我需要将 return 语句放在我的 using 语句之外
  3. 我需要在返回之前删除我创建的临时表

有谁知道它是哪一个?或者如果它是我没有想到的?

0 投票
4 回答
4050 浏览

c# - 识别 IDisposable 对象

我必须查看其他人编写的代码,该代码有一些内存泄漏。现在我正在搜索一次性对象以使用 using 语句将它们包含在内,我想知道是否有一种快速方法可以告诉您声明的所有一次性对象。我的意思是像 resharper 或其他 Visual Studio 插件。

谢谢。

0 投票
3 回答
33414 浏览

c# - 如果发生错误,using 语句会回滚数据库事务吗?

我在 using 语句中有一个 IDbTransaction,但我不确定如果在 using 语句中引发异常,它是否会回滚。我知道 using 语句将强制调用 Dispose()...但是有谁知道 Rollback() 是否也是如此?

更新:另外,我是否需要像下面那样显式调用 Commit() 或者使用语句也会处理这个问题?

我的代码看起来像这样:

0 投票
6 回答
605 浏览

c# - 在 C# 代码中使用块有什么意义?

我看到大量具有以下语法的代码片段

为什么不直接声明变量并使用它呢?

这种 Using 语法似乎只会使代码混乱并使其可读性降低。如果它是如此重要以至于该变量仅在该范围内可用,为什么不将该块放在一个函数中呢?

0 投票
7 回答
56097 浏览

c# - 在 using 块的中间返回

就像是:

我认为这不是退货声明的合适位置,是吗?

0 投票
0 回答
2908 浏览

c# - 如果我在 using 语句中返回,对象是否仍然被释放?

在使用块中间返回的错误

我认为问题标题相当明显,因此如果返回 true,则考虑以下代码是否会处理 SecurityDisabler?