2

我试图从函数中返回 $true 或 $false,然后得到一个数组。如果我删除 listBox 消息,它会按预期工作。有谁知道为什么?

function TestEmptyFields()
{
  $empty= $false

  $listBox1.Items.Add("Testing fields")

  if ($txtPrtName.get_text()-eq "")
  {
    $listBox1.Items.Add("Empty name")
    $empty= $true
  }
  elseif ($txtPrtIP.get_text() -eq "")
  {
    $listBox1.Items.Add("Empty Ip")
    $empty= $true
  } 
  else 
  {
    $empty= $false
  }

  $listBox1.Items.Add($txtPrtName.get_text())
  $listBox1.Items.Add($txtPrtIP.get_text())

  return $empty
}

但它像这样工作正常:

function TestEmptyFields()
{
  if($txtPrtName.get_text()-eq "")
  {
    return $true
  }
  elseif ($txtPrtIP.get_text() -eq "")
  {
    return $true
  }
  else
  {
    return $false
  }
}
4

1 回答 1

5

在 powershellreturn $empty中,它在功能上等同于$empty ; return- 实现该行为是为了让具有 C 风格语言背景的人更轻松,但实际上你得到的回报比你想象的要多!列表框也返回内容。事实上,任何未分配给变量或以其他方式使其输出无效的内容都将到达输出流。要解决此问题,请尝试将列表框转换为[void]这样:

[void] $listBox1.Items.Add("Testing fields")

在表单的上下文中查看有关正确使用列表框的TechNet 指南可能不会有什么坏处。

于 2013-09-20T07:46:25.803 回答