这是我的代码:
Function CleanUpOracle
{
if ($Requete)
{
$Requete.Dispose()
}
if ($ExecuteRequete)
{
$ExecuteRequete.Dispose()
}
if ($Transaction)
{
$Transaction.Dispose()
}
if ($OracleConnexion)
{
$OracleConnexion.close()
$OracleConnexion.Dispose()
}
if ($Log.id)
{
$Log.PSObject.Properties.Remove('id')
}
}
我测试变量是否存在,然后{do something}
但是在将来我会测试很多变量,我不想拥有数百行。
如何优化此功能?也许用开关但怎么样?
谢谢!
答案 0 :(得分:5)
如果您想有条件地针对多个项目拨打Dispose
,可以将它们从列表中流式传输到ForEach-Object(其别名为%
):
@($Requete, $ExecuteRequete, $Transaction, $OracleConnexion) |
% {if($_) {$_.Dispose()} }
注意:为了便于阅读,我将其拆分为多行。