Я объясню свой вопрос на примере. Давайте иметь следующий код в C #:
void A(Action block)
{
B(() =>
{
Console.WriteLine(2);
block();
});
}
void B(Action block)
{
Console.WriteLine(1);
block();
}
void Main()
{
A(() =>
{
Console.WriteLine(3);
});
}
Вывод этого кода:
1
2
3
Теперь я хочу написать этот код в PowerShell:
function A($block) {
B {
2
. $block
}
}
function B($block) {
1
. $block
}
A {
3
}
Однако этот код вызывает переполнение глубины вызова:
Сценарий не выполнен из-за глубины вызова
переполнение. Глубина звонка достигла 1001
и максимум 1000.
Я обнаружил, что если я изменю имя параметра функции B, он будет работать.
Это функция или ошибка (или оба)? Как я могу заставить это работать в PowerShell без уникальных параметров для функций?