PowerShell中能用Using语句吗? 4


熟悉c#的朋友们,你会不会抱怨PowerShell中没有Using语句自动调用Idisposable接口中的Dispose方法,来释放资源呢?不要悲伤,PowerShell强大的兼容性可以让你做类似的事情。那就是scriptblocks脚本块。下面的函数会接受一个实现Idisposable方法的变量,然后把它交给脚本块去执行,在脚本块内部,可以通过 $_来访问它。

function use-var([idisposable]$instance, [scriptblock]$scriptblock)
{
  try 
  {
    $instance | %  $scriptblock
  }
  finally 
  {
    $instance.dispose()
  }
}

使用的时候也很简单:

use-var (new-object system.io.memorystream 40) {
  $_.writebyte(40);
  $_.writebyte(20);
  $_.toarray();
  $_.close();
}

要让这个函数变得高大威猛起来,需要点时间,但是思路已经清晰了。
参考链接 Karl (USING for PowerShell?)

本文链接: https://www.pstips.net/using-for-powershell.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

4 条评论 “PowerShell中能用Using语句吗?