Я использую начальный символ подчеркивания в классе PHP 5, который я пишу для закрытых методов. Это - небольшой визуальный индикатор разработчику, что конкретный участник класса является частным. Этот тип вывода подсказок не так полезен при использовании IDE, который отличает общедоступных и членов парламента, не занимающих официального поста для Вас. Я взял его со своих дней C#. Старые привычки...
Когда вы указываете:
$string_list = @()
Вы не указали PowerShell информацию о типе, поэтому он создает массив System.Object, который может содержать любой объект:
PS> ,$string_list | Get-Member
TypeName: System.Object[]
Попробуйте указать конкретный тип массива (строковый массив), например:
PS> [string[]]$string_list = @()
PS> ,$string_list | Get-Member
TypeName: System.String[]