1
任何人都可以解释为什么以下(使用System
命名空间限定符)行为的工作原理:PowerShell的添加型并不如预期
Add-Type @"
public class BitValueChecker
{
public static bool IsBitSetZeroBased(uint value, uint bitNumber)
{
if (bitNumber < 0 || bitNumber >= 32)
throw new System.Exception("Invalid bit number must be >= 0 and <= 31");
uint checkValue = value & System.Convert.ToUInt32(System.Math.Pow(2, bitNumber));
return checkValue > 0;
}
}
"@
而下方(基本相同)片段导致PS抱怨Exception
,Convert
和Math
“在当前情况下不存在”?
Add-Type @"
public class BitValueChecker
{
public static bool IsBitSetZeroBased(uint value, uint bitNumber)
{
if (bitNumber < 0 || bitNumber >= 32)
throw new Exception("Invalid bit number must be >= 0 and <= 31");
uint checkValue = value & Convert.ToUInt32(Math.Pow(2, bitNumber));
return checkValue > 0;
}
}
"@
击败我吧。令人讨厌的是PS文档中的这一点:“默认情况下,Add-Type引用System命名空间。” –
如果使用参数-membertype添加系统名称空间! –
@大卫教皇 - 什么恼人的位?您在引用和使用之间混淆不清。即使在Visual Studio中,您也必须参考并使用它。只是当你创建一个项目时系统被引用,并且还添加了一个使用系统。 – manojlds