Add-Type не поддерживает синтаксис инициализации словаря? - PullRequest
0 голосов
/ 08 ноября 2019

Следующий код получает ошибку

Add-Type: c: \ Users .... cs (7): недопустимый термин выражения '['

c:\ Users ..... cs (6): вернуть новый словарь {

c: \ Users ..... cs (7): >>> ["aa"] = "123",

c: \ Users ..... cs (8): ["bb"] = "235"

$Source = @"
using System.Collections.Generic;
public class BasicTest
{
  public static Dictionary<string, string> Add(int a, int b)
    {
        return new Dictionary<string, string>{ 
            ["aa"] = "123",
            ["bb"] = "235"
        };
    }
  public int Multiply(int a, int b)
    {
    return (a * b);
    }
}
"@

Add-Type -TypeDefinition $Source

1 Ответ

0 голосов
/ 08 ноября 2019

Когда я запускаю help Add-Type, одна из опций выглядит так:

[-Language {CSharp | CSharpVersion3 | CSharpVersion2 | VisualBasic | JScript}]

У него есть только опции, идущие до C # 3.0, который поставляется с .NET 3.5. Синтаксис, на котором он работает, использует функцию из C # 6.0.

Примечание. Моя версия Powershell - 5.1, которая поставляется с Windows и предшествует текущей версии Powershell с открытым исходным кодом: https://github.com/PowerShell/PowerShell. Готов поспорить, ваш пример будет работать с более свежим выпуском.

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