PowerShell Add-Type не работает должным образом - PullRequest
1 голос
/ 04 октября 2011

Может кто-нибудь объяснить, почему работает следующее (с использованием квалификатора пространства имен 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;
    }
}
"@

1 Ответ

2 голосов
/ 04 октября 2011

Во второй код необходимо добавить

Add-Type @"
using System;

public class BitValueChecker
{
....

Как в коде ac #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...