循环和垃圾收集

2023-12-01

我正在开发一个网络应用程序,并且遇到了以下情况。

Dim a as Object
Dim i as Integer = 0

Try

    For i=1 to 5

        a = new Object()

        'Do stuff '

        a = Nothing

    Next

Catch

Finally

   a = Nothing

End Try

我需要在循环中执行 a=Nothing 还是垃圾收集器会清理 a ?


在 .NET 中,您通常不会need设置变量引用 =Nothing (null在 C# 中)。垃圾收集器最终会清理干净。当引用超出范围时(当你的方法退出时或当此类的对象完成时),引用本身将被销毁。请注意,这并不意味着object被破坏了,只是对它的引用。该对象仍将被收集器不确定地销毁。

但是,设置您的参考=Nothing将为 .NET 提供一个提示,表明该对象可能是垃圾,并且除了代码混乱之外不一定会造成任何损害。如果您要将其保留在那里,我建议将其从Try堵塞;它已经在Finally块,因此将始终被调用。 (除了某些灾难性的例外;但在这些情况下,它不会在Try要么阻止!)

最后,我不得不承认我同意 Greg 的观点:如果没有这个,你的代码会更干净。向运行时提示您已完成引用是很好的,但当然并不重要。老实说,如果我在代码审查中看到这一点,我可能会让开发人员这样重写它:

Dim a as Object
Dim i as Integer = 0

For i=1 to 5
    a = new Object()
    'Do stuff
Next
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

循环和垃圾收集 的相关文章

  • 正则表达式:如何获取组名称

    我有一个 NET 正则表达式 它看起来类似于
  • 您是否必须在 VB.NET 中显式创建表单实例? [复制]

    这个问题在这里已经有答案了 如果一个项目包含Form类 形式可以通过以下方式显示 Form1 Show 或者是否需要首先创建表单的实例 Dim frm As New Form1 frm Show 正如所建议的 使用表单名称使用默认实例 而第
  • 检测 404 而不捕获异常

    简单功能 检查网络服务器是否返回非 200 HTTP 状态 Private Function RemoteFileOk ByVal Url As String As Boolean Dim req As HttpWebRequest Try
  • 未分配给变量的类实例是否会过早被垃圾回收?

    我什至不知道我的问题是否有意义 这只是我不明白的事情 并且在我的脑海中旋转了一段时间 考虑有以下课程 public class MyClass private int myVar public void DoSomething Do som
  • 执行鼠标单击而不移动光标

    除了移动光标之外 我找不到任何解决方案Cursor类 点击mouse event然后将光标移动到原来的位置 我正在玩SendInput现在可以运行 但仍然没有机会找到好的解决方案 有什么建议吗 您应该使用 Win32 API 使用 user
  • 如何获取运行或段落的高度

    我找到了Run or Paragraph in FlowDocument现在我需要知道HEIGHT of it i e while navigator CompareTo flowDocViewer Document ContentEnd
  • 在 Windows 中为 Apple 推送通知创建 p12 证书

    我正在用 C 为 iPhone 做推送通知 服务器端 我有 developer Push SSL certi cer 文件 如何从 cer 文件创建 p12 证书 或者我必须在我的电脑上安装上述 cer 文件 在服务器端发送推送通知所需的文
  • 用户如何在winforms运行时调整控件大小

    假设我有一个图片框 现在我想要的是用户应该能够随意调整图片框的大小 但是我不知道如何开始做这件事 我搜索过互联网 但信息很少 有人至少可以指导我从哪里开始吗 这很容易做到 Windows 中的每个窗口都具有与生俱来的可调整大小的能力 它刚刚
  • .NET Framework 2.0 Service Pack 1 中新增的类型

    我以为 NET 2 0 SP1 中只有错误修复 没有新类型 直到我遇到few http davesbox com archive 2008 08 25 new for visual studio 2008 sp1 and fxcop 1 3
  • C++/CLI 中的 Lambda 表达式

    如何在 C CLI 中使用 lambda 表达式 在 C 中 lambda 实际上只是用于创建委托的语法糖 C CLI支持代表 http www functionx com cppcli classes Lesson15c htm 因此您仍
  • 实体框架中的 DbSet [重复]

    这个问题在这里已经有答案了 我在实体框架中有以下代码 using var dbc new TestDbContext var data from a in dbc tableList select new a id ToList 当我调试代
  • DBNull 怎么会不等于 DBNull

    我有以下代码行 if DBNull Value Equals o o null where o is object o in row ItemArray我不断收到错误 gt Xml type List of xdt untypedAtomi
  • Rx.NET 中是否有一个Subject 实现,其功能类似于BehaviourSubject,但仅在值发生更改时才发出?

    有没有Subject https learn microsoft com en us previous versions dotnet reactive extensions hh229699 v vs 103 Rx NET 中的实现在功能
  • for循环中更新JLabel的问题

    我的程序的想法是从之前在其他 JFrame 中保存的列表中选择一个名称 我想在标签中一个接一个地打印所有名称 它们之间有很小的延迟 然后停在其中一个名称上 问题是lbl setText String 如果有多个则不起作用setText co
  • Task.Run 作为反模式?

    我正在将 SQLite NET PCL 库用于我的 WinRT 项目SQliteAsyncConnection类 它提供经典的异步版本SQLiteConnection方法 然而 就该项目而言Github页面 https github com
  • 语音识别编程问题入门

    所以 你们可能都看过 钢铁侠 其中托尼与一个名为贾维斯的人工智能系统进行交互 演示剪辑here http www youtube com watch v Go8zsh1Ev6Y 抱歉 这是广告 我非常熟悉 C C 和 Visual Basi
  • 假装 .NET 字符串是值类型

    在 NET 中 字符串是不可变的 并且是引用类型变量 这通常会让新的 NET 开发人员感到惊讶 因为他们的行为可能会将它们误认为是值类型对象 然而 除了使用实践StringBuilder对于长连接 尤其是 在循环中 在实践中是否有任何理由需
  • 代码中的.net Access Forms身份验证“超时”值

    我正在向我的应用程序添加注销过期警报 并希望从我的代码访问我的 web config 表单身份验证 超时 值 我有什么办法可以做到这一点吗 我认为您可以从 FormsAuthentication 静态类方法中读取它 这比直接读取 web c
  • Visual Studio '17 未在参考管理器中显示程序集

    我遇到的问题是 我似乎无法弄清楚如何添加对某些解决方案的引用 在我从 Visual Studio 17 开始的大多数解决方案中 我在解决方案资源管理器中看到 引用 但例如对于 asp net core web api 我得到 依赖项 每当解
  • 如何隐藏数据列表中的项目

    我想隐藏一个项目datalist根据某种条件起诉ItemBound how Wrap a PlaceHolder控制整个内容ItemTemplate 然后在 ItemDataBound 事件中 您可以执行以下操作 Protected Sub

随机推荐

  • SSIS 包将不再在 Visual Basic 中执行 - 而是通过“构建”

    我是一个超级初学者 使用 Visual Studio 2017 创建我的第一个 SSIS 包 此包打开一个平面文件 csv 并将其添加到 SQL 服务器上的表中 当我按下 开始 按钮 在 Visual Studio 中 时 SSIS 包可以
  • 相对位置的顶部未按预期工作

    为什么 top 属性不起作用 img 当标签 img 是兄弟姐妹 p 但是如果我删除标签 p p 这有效 html body height 100 img position relative top 40 p p Lorem ipsum d
  • 以编程方式将 ipython 笔记本保存为脚本

    优秀的ipython笔记本有一个方便的 script命令行标志自动将笔记本的副本保存为 py脚本文件 删除任何标题和 Markdown 单元格 有没有办法在笔记本打开后从笔记本内部打开此功能 显然 此选项无法访问 config magic
  • 使用jna消费按键事件

    在我正在编写的应用程序之一中 我需要使用某些关键事件 以便其他应用程序不处理它们 在我的代码中 我创建了一个 com sun jna platform win32 WinUser LowLevelKeyboardProc 如下所示 impo
  • 在 Java 中从键盘读取 double

    如何在 Java 中从键盘读取双精度变量 我正在尝试解决这个问题 但没有成功 它说 线程 main 中的异常 java util InputMismatchException 在 java util Scanner throwFor Sca
  • 正则表达式重复字符计数

    如果我有一组像 abcdefghij 这样的字符并使用这些字符 我会使用这些字符随机生成一个密码 例如 生成的密码可以有 6 个字符 如何使用正则表达式验证密码 以使相邻字符不相同并且字符不会重复两次以上 你可以使用类似的东西 1 neig
  • 我可以在 C# 项目上使用 .rc 资源文件吗?

    我有一个 C 解决方案 我需要更新资源文件中的版本 resx 文件是 xml 文件 我已经在 C 资源文件 不是 xml 文件 中完成了它 我想知道是否可以使用类似的东西在我的 C 项目中 您无法直接从 Visual Studio 执行此操
  • 如何通过 Azure 上传小文件 API 在 Yammer API 上上传文件

    如何随 Yammer 消息一起上传附件 任何遗留方法通过attachment1等领域 messages json端点将不再工作 新方法没有很好的记录 https developer yammer com docs upload files
  • com.sun.faces.context.PartialViewContextImpl.createPartialResponseWriter 处的 java.lang.NullPointerException

    我在 JBoss AS 7 1 上的 JSF 2 应用程序中有一个带有延迟加载的 PrimeFaces 5 1 数据表 它在页面加载时排序 所以我知道我的排序实现有效 但是当我单击列进行排序时 它会抛出以下异常 17 48 34 855 E
  • UIWebView 中的 Javascript 回调到 C/Objective-C

    当在 UIWebView 中检测到特定事件时 有没有办法获得对 Objective C 的回调 Javascript 可以向 Objective C 发送回调吗 更新 不再使用 UIWebView 使用 WKWebView 或更好的 Saf
  • 使用本机函数计算 Google 表格的分层标签

    使用 Google Sheets 我想自动对行进行编号 如下所示 关键是我想要这个使用内置函数 only 我有一个实现 其中子项位于单独的列中 例如 Foo 位于 B 列中 Bar 位于 C 列中 Baz 位于 D 列中 但是 它使用自定义
  • boost Spirit x3分裂后奇怪的语义行为

    在我将语法分成推荐的语法后 我遇到了 boostspirit x3 的奇怪行为parser hpp parser def hpp parser cpp文件 我的示例语法解析某种简单的枚举 enum enum gt identifier gt
  • 如何在 C++ 中使用 libgit2 检查是否需要 pull ? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想检查我是否有最新版本的程序 我已将我的程序共享到 bitbucket org 并且如果我需要提取最新版本 或者我已经拥有最新版本 我希望我的 C 代码可以写给我 首先 您必须
  • jquery $.post() 被取消[重复]

    这个问题在这里已经有答案了 每当我执行 jquery post 时 我都会收到 已取消 状态 看起来像是异步问题 我通过以下方式访问本地项目http 127 0 0 1 8933 myproject default index html 索
  • 如何在C中不使用科学记数法显示大双数?

    如何显示双重喜欢 5000683 代替5 000683e6 in C 我努力了 d g and f 但无济于事 看起来像 f工作得很好 include
  • SQL Server 触发器 - 按事务分组

    在工作中 我们刚刚开始为数据库构建审核框架 即记录创建或更新数据时发生的更改 我们非常希望使用触发器来实现这一点 因为数据有时会从其他地方导入到系统中 而不仅仅是通过前端 这似乎是一个相当共同解决方案 不过 我想补充一点 如果用户运行更新多
  • Ruby 方法instance_eval() 和send() 是否否定了私有可见性的好处?

    w Widget new Create a Widget w send utility method Invoke private method w instance eval utility method Another way to i
  • 在 Qt 中高效地绘制物理上精确的标尺

    我有一个统治者类 称为Graduation 使用方向来计算应在何处绘制线条 像这样 当方向设置为Qt Horizontal I do line xpos precendent line xpos number 那么如果方向是Qt Verti
  • C# 正则表达式 在有或没有换行之间匹配

    我正在尝试匹配两个分隔符之间的文本 并且我想获取所有内容 无论字符串是否包含新行 Code string strEmailContent sr ReadToEnd string commentPatt r n n r n n Regex c
  • 循环和垃圾收集

    我正在开发一个网络应用程序 并且遇到了以下情况 Dim a as Object Dim i as Integer 0 Try For i 1 to 5 a new Object Do stuff a Nothing Next Catch F