我该如何优化这段代码?

How do I optimize this code?

我有一些带块的 powershell 脚本:

$checkBox_1.Add_CheckStateChanged({
    if( $checkBox_1.Checked -or 
        $checkBox_2.Checked -or
        $checkBox_3.Checked -or
        $checkBox_4.Checked -or
        $checkBox_5.Checked -or
        $checkBox_6.Checked -or
        $checkBox_7.Checked -or
        $checkBox_8.Checked -or
        $checkBox_9.Checked -or
        $checkBox_10.Checked -or
        $checkBox_11.Checked -or
        $checkBox_12.Checked -or
        $checkBox_13.Checked -or
        $checkBox_14.Checked ) {
        $okButton.Enabled = $True
    }
    else {
        $okButton.Enabled = $False
    }
})
$checkBox_2.Add_CheckStateChanged({
    if( $checkBox_1.Checked -or 
        $checkBox_2.Checked -or
        $checkBox_3.Checked -or
        $checkBox_4.Checked -or
        $checkBox_5.Checked -or
        $checkBox_6.Checked -or
        $checkBox_7.Checked -or
        $checkBox_8.Checked -or
        $checkBox_9.Checked -or
        $checkBox_10.Checked -or
        $checkBox_11.Checked -or
        $checkBox_12.Checked -or
        $checkBox_13.Checked -or
        $checkBox_14.Checked ) {
        $okButton.Enabled = $True
    }
    else {
        $okButton.Enabled = $False
    }
})

还有另外十二个类似的块。

写这个块的方式是否更短、更好?

只创建一个包含所有复选框的数组:

$checkboxes = Get-Variable checkBox_*
$checkboxes | ForEach {
    $_.Value.Add_CheckStateChanged({
        $okButton.Enabled = $True -in ($checkboxes | ForEach { $_.Value.Checked })
    })
}

在PS3.0+中可以简化内部检查:

        $okButton.Enabled = $True -in $checkboxes.Value.Checked