任何人都可以解释为什么以下(使用System
命名空间限定符)有效:
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;
}
}
"@
答案 0 :(得分:2)
在你的第二个代码中,你必须添加
Add-Type @"
using System;
public class BitValueChecker
{
....
与c#代码类似。