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