Hi folks
C# has a nice syntactic sugar
using (var myDisposable = new MyDisposable())
{
// ...
}
which corresponds to
MyDisposable myDisposable = null;
try
{
myDisposable = new MyDisposable()
// ...
}
finally
{
if (myDisposable != null)
myDisposable.Dispose()
}
Let’s implement the same thing for PowerShell
function PSUsing
{
param
(
[IDisposable] $disposable,
[ScriptBlock] $scriptBlock
)
try
{
& $scriptBlock
}
finally
{
if ($disposable -ne $null)
{
$disposable.Dispose()
}
}
}
We could not use Using because it is a reserved PowerShell word.
And we can use it like
PSUsing ($myDisposable = New-Object -TypeName MyDisposable) `
{
# ...
}
Stay tuned