我需要使用多个using 语句吗?

2023-12-07

出于实用性考虑,这两个类都是一次性的。

我了解 using 块的作用。但我不确定它可以或需要使用的所有方式。

例如,这是正确的吗?

using (MyClass myClass = new MyClass(params))
{
     myClass.name = "Steve";

     SecondClass myClassSecond = new SecondClass(params);
     myClassSecond.name = "George";
     myClassSecond.msg = "Hello Man in the Yellow Hat";
}

上面的两个类都被处理掉了吗?

或者我在 using 语句中需要两者吗?

using (MyClass myClass = new MyClass(params))
{
     myClass.name = "Steve";

     using (SecondClass myClassSecond = new SecondClass(params))
     {
          myClassSecond.name = "George";
          myClassSecond.msg = "Hello Man in the Yellow Hat";
     }
}

以上是否正确,或者是否有更好的方法来使用多个using语句?


  • The using语句允许程序员指定使用资源的对象何时应该释放它们。
  • 提供给 using 语句的对象必须实现IDisposable界面。
  • 该接口提供了Dispose方法,该方法应该释放对象的资源。

以下是显示 using 语句用法的示例:

using System;
//Object of this class will be given to using hence IDisposable
class C : IDisposable        
{
    public void UseLimitedResource()
    {
        Console.WriteLine("Using limited resource...");
    }

    //Dispose() Method
    void IDisposable.Dispose()
    {
        Console.WriteLine("Disposing limited resource.");
    }
}

class Program
{
    static void Main()
    {
        using (C c = new C())  //Object of Class defined above
        {
            c.UseLimitedResource();
            //Object automatically disposed before closing.
        }                            
        Console.WriteLine("Now outside using statement.");
        Console.ReadLine();
    }
}

在以下情况下可以退出 using 语句:

  • 的结束using声明已达成或
  • 如果抛出异常并且控制在语句结束之前离开语句块。

哪个是正确的方法?

正如你所说

出于实用性考虑,这两个类都是一次性的

.,那么你的第二种方法是合适的。那是:

using (MyClass myClass = new MyClass(params))
{
     myClass.name = "Steve";

     using (SecondClass myClassSecond = new SecondClass(params))
     {
          myClassSecond.name = "George";
          myClassSecond.msg = "Hello Man in the Yellow Hat";
     }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我需要使用多个using 语句吗? 的相关文章

随机推荐

  • jQuery 拖动/使用 CSS 变换比例调整大小

    我正在应用 CSS 转换 以及浏览器特定的 webkit o 等 变换 矩阵 0 5 0 0 0 5 0 0 到一个 div 然后在该 div 的子级上使用 jQuery 的draggable 和 ressized 插件 我遇到的问题是 当
  • OnActionExecuting 在标准 asp.NET 中等效吗?

    是否有 MVC NET 的等效项OnActionExecuting在标准 asp net 中 我以为会是Page Load since OnActionExecuting每次执行操作 或加载页面 时都会调用 但当我尝试使用 Page Loa
  • 活动和片段有什么区别?

    根据我的研究 backstack 的概念及其存在方式存在显着差异 Activity When an activity被放置到backstack of activities用户 只需按一下即可导航回到上一个活动back button Acti
  • 如何在C中检查网络设备状态?

    我想检查网络设备状态 例如混杂模式 基本上就像所示ip a命令 也许有人可以把我推向正确的方向 我想在 Linux 的 C 语言中执行此操作 以便可以使用 Linux 特定的头文件 您需要使用SIOCGIFFLAGSioctl 检索与接口关
  • android:如何从我的应用程序打开另一个应用程序?

    我了解在我自己的应用程序中打开另一个活动时如何使用意图和 startActivity 但是如何启动不同的应用程序 具体来说 如何确定用户的设备上是否安装了所需的应用程序 你如何启动该应用程序 如何将参数传递给该应用程序 如何找到特定应用程序
  • 如何在 R 中加载 MASS 库的数据集部分?

    我正在阅读这本关于统计学习 机器学习和 R 的书 其中一个问题是 首先 加载波士顿数据集 波士顿数据集是 R 中的 MASS 库 library MASS 现在数据集包含在对象中Boston 阅读有关数据集的信息 Boston 我不明白语法
  • Spring MVC 事务控制器

    我正在尝试获取一个 Spring MVC 控制器方法 该方法已用 Transactional 注释 如果在该方法返回之前在客户端拉动网络电缆 则该方法将回滚 我似乎无法让它工作 这是一个示例我想要实现的目标 Transactional ro
  • Python 中出现“意外缩进”该怎么办?

    如何纠正 Python 中的 意外缩进 错误 Python 使用行开头的空格来确定代码块的开始和结束时间 您可能遇到的错误有 意外的缩进 这行代码的开头比前一行有更多的空格 但前一行不是子块的开头 例如 if while and for声明
  • 将形状复制到空白画布(OpenCV、Python)

    import numpy as np import cv2 blank image np zeros 40 40 3 np uint8 blank image fill 255 cv2 imshow i blank image cv2 wa
  • Facebook Feed 对话框移动网址:display=wap 问题

    我正在使用此 url 将我的移动网页定向到 Facebook 墙帖对话框页面 但是我似乎无法获取display wap上班 http m facebook com dialog feed app id
  • 为什么我不能继承 Enum 的子类?

    考虑以下代码 from enum import Enum class SubclassOfEnum Enum x 5 print SubclassOfEnum x class SubSubclassOfEnum SubclassOfEnum
  • Android,如何将CSS应用到WebView中?

    我想使用 WebView 以便向用户显示一些段落 在 XML 中 我编写了以下代码
  • RedirectToLocal() 转到不同的 url

    以下代码片段来自我的 ASP NET MVC 5 应用程序 public ActionResult Ask string id if this User Identity IsAuthenticated string retUrl Requ
  • 自定义验证不起作用 - Yii2-app-basic-Yii2

    我昨天发布了一个关于单选按钮自定义验证的问题单选按钮上的强制文本字段 我得到了答案 但是 这并不是准确的答案 但是 它解决了我的一个问题 实际上 我有 2 个单选按钮 个人 Firm 当选择具有 个人 值的单选按钮时 公司名称文本框不应是强
  • Typescript:具有不同参数的泛型数组

    考虑一个这样调用的函数 func object object1 key someKeyOfObject1 object object2 key someKeyOfObject2 它有一个数组 我想强制执行key字段保存所保存对象的键obje
  • 将 Java 代码从 Java 8 语法解析为 Java 7 语法的工具? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有谁知道有什么工具可以将使用 lambda 和方法引用的 Java 8 代码 在源代码级别 转换为使用匿名内部类的 Java 7 代码吗 我知道关于
  • PyQt 作为 Windows APPCRASH 崩溃

    我有一个非常短的 PyQt 程序 注意 这是一个 PythonFiddle 链接 这似乎在 Firefox 中严重崩溃 因此代码也发布在下面 它将输出打印到QTextEdit 使用代码从这个答案 当我运行代码 在 Windows 上 时 它
  • 使用 Cucumber 截图

    我刚刚学会如何使用黄瓜 你能告诉我如何完成这段代码吗 您可以使用以下代码片段实现未定义步骤的步骤定义 Then I take a screenshot do pending express the regexp above with the
  • java中如何将字符串转换为运算符

    我想转换一些String对于这样的操作员 int value 1 int valueToCompare 3 String operation lt if value operation valueToCompare some operati
  • 我需要使用多个using 语句吗?

    出于实用性考虑 这两个类都是一次性的 我了解 using 块的作用 但我不确定它可以或需要使用的所有方式 例如 这是正确的吗 using MyClass myClass new MyClass params myClass name Ste