在没有`using` 关键字的情况下打开和关闭文件的最佳方法是什么

琼斯

我对 c# 相当陌生。在 Python 中,您可以选择使用with关键字,或者简单地调用f = open('filename')and f.close()是否有 ac# 等同于后者?

我避免使用,using因为我正在尝试为没有语法等效的语言编写绑定。我希望编写一个有 aopen()close()方法的类,并尽可能保持 1:1。

克里斯托弗

使用是最好的方法。也是唯一一个远程可靠和可建议的。您应该避免拆分资源的创建和处置。

它只是 try/finally、null-check、dispose 的简写。

事实上,示例代码有这样的:

using (var font1 = new Font("Arial", 10.0f)) 
{
    byte charset = font1.GdiCharSet;
}

这(几乎)相当于:

{
  var font1 = new Font("Arial", 10.0f);
  try
  {
    byte charset = font1.GdiCharSet;
  }
  finally
  {
    if (font1 != null)
      ((IDisposable)font1).Dispose();
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

没有“ function”关键字的情况下,此对象方法定义如何工作?

有什么方法可以使用java.nio。*在不关闭套接字的情况下中断InputStream#read()?

在没有别名的情况下可以在别名中使用SQL的“ AS”关键字有什么意义?

Typescript-在没有static关键字的情况下继承静态属性

在没有async关键字的情况下在全局范围内使用await

如何在没有'new'关键字的情况下将JS代码转换为Kotlin

Kotlin中的suspend关键字可以在没有协程的情况下做什么吗?

在没有设计的情况下以用户身份登录rspec请求规范的正确方法是什么?

在没有多个* ngIf的情况下显示Reactive Form错误消息的最佳实践是什么?

在没有主键的情况下更新记录的REST方法是什么?

在C中没有日期的情况下比较时间(小时和秒)的最佳方法?

在Razor Pages中,建议在没有UI的情况下运行操作的推荐方法是什么

在有或没有jquery的情况下使用延迟角度承诺的正确方法是什么?

如何在没有'lambda'关键字的情况下将方法作为函数参数传递?

在Flutter中使用Admob关键字的正确方法是什么?没有真实的广告

在没有开销的情况下实现push_back的最佳方法是什么

为什么在有或没有上下文的情况下捕获异常关闭打开的文件?

没有主体的class关键字是什么?

在没有new关键字的情况下调用构造函数

在没有PAM的情况下验证用户身份的正确方法是什么?

此关键字在代码中的作用是什么?如果没有此关键字,是否还有其他方法?

在没有TTY的情况下附加到cron程序的最佳方法是什么

在没有CUPS的情况下安装LPD的“官方”方法是什么?

C#:为什么 Networkstream.Read() 能够在没有 out/ref 关键字的情况下更改缓冲区变量

应用程序:有没有办法在没有提示的情况下保存和关闭外部文件?

在没有父密钥的情况下获取子“信息”的最佳方法是什么?

在 Swift 中没有日期的情况下比较两次的最佳方法是什么

为什么在没有标题的情况下无法识别新的关键字/运算符/函数?

在没有数据库的情况下,在 JavaScript 中存储和处理数据的最佳解决方案是什么?