Powershell布尔返回数组
我试图从函数返回$true或$false,然后得到一个数组。 如果我删除列表框消息,它将按预期工作。有人知道为什么吗Powershell布尔返回数组,powershell,Powershell,我试图从函数返回$true或$false,然后得到一个数组。 如果我删除列表框消息,它将按预期工作。有人知道为什么吗 function TestEmptyFields() { $empty= $false $listBox1.Items.Add("Testing fields") if ($txtPrtName.get_text()-eq "") { $listBox1.Items.Add("Empty name") $empty= $true } e
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
}
}
在powershell中
返回$empty
在功能上等同于$empty;return
——实现这种行为是为了让有C风格语言背景的人更轻松,但实际上返回的信息比你想象的要多!列表框也返回内容。事实上,任何未分配给变量或其输出为空的内容都将到达输出流。要解决此问题,请尝试将listbox强制转换为[void]
,如下所示:
[void] $listBox1.Items.Add("Testing fields")
在表单上下文中正确使用列表框也不会有什么坏处。您之前是否尝试过返回值?i、 e.不写入
$empty=$true
,而是直接返回$true
?除此之外,如果我们没有分配/声明$txtPrtName
、$txtPrtIP
和$listBox1
的部分,那么要帮助您调试它就不那么容易了。我还建议您不要在函数中处理全局变量,而是将它们作为该函数的参数。谢谢,我已经尝试过了,这是相同的行为。但它的工作原理是:函数TestEmptyFields(){if($txtPrtName.get_text()-eq“”){return$true}elseif($txtPrtIP.get_text()-eq“”){return$true}否则{return$false}您可以在函数中包含设置您正在测试的变量的代码吗?或者将它们设置为参数吗?谢谢:-),如果您不介意的话,这就是它的插件-