我有一个接受枚举值作为参数的函数。举个例子,考虑一下这样的事情:
(PS) > function IsItFriday([System.DayOfWeek] $dayOfWeek) {
if($dayOfWeek -eq [System.DayOfWeek]::Friday) {
"yes"
} else {
"no"
}
}
现在,如果我像这样调用它,一切都很好:
(PS) > $m = [System.DayOfWeek]::Monday
(PS) > IsItFriday $m
no
但是如果我调用直接传递枚举值的函数,我会得到一个相当神秘的错误:
(PS) > IsItFriday [System.DayOfWeek]::Monday
IsItFriday : Cannot convert value "[System.DayOfWeek]::Monday" to type "System.DayOfWeek"
due to invalid enumeration values. Specify one of the following enumeration values and
try again. The possible enumeration values are "Sunday, Monday, Tuesday, Wednesday,
Thursday, Friday, Saturday".
At line:1 char:11
+ IsItFriday <<<< [System.DayOfWeek]::Monday
使用枚举值初始化变量和直接传递枚举值有什么区别?
这有点出乎意料 - 您需要将其括在括号中,以便计算该值:
> IsItFriday ([System.DayOfWeek]::Monday)
也可以只传递这样的字符串:
> IsItFriday Monday
no
> IsItFriday Friday
yes
PowerShell 会将其转换为枚举类型。方便,不是吗:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)