Да, в значительной степени. List<T>
- общий класс. Он поддерживает сохранение значений определенного типа без приведения в действие или из object
(что привело бы к сбоям в бокс / распаковке, когда T
является типом значения в случае ArrayList
). ArrayList
просто сохраняет ссылки object
. В качестве общей коллекции List<T>
реализует общий интерфейс IEnumerable<T>
и может легко использоваться в LINQ (без необходимости вызова Cast
или OfType
).
ArrayList
относится к дням, когда у C # не было дженериков. Он устарел в пользу List<T>
. Вы не должны использовать ArrayList
в новом коде, который нацелен на .NET> = 2.0, если вам не нужно взаимодействовать со старым API, который его использует.
Это не ошибка, это функция, называемая сетевой изоляцией. Он был представлен в Windows 8 (приложения Metro были названы приложениями Windows Runtime).
По соображениям безопасности приложение UWP, установленное стандартным образом, не разрешено выполнять сетевые вызовы на устройство, на котором оно установлено.
Функция может быть отключена в Настройки отладки Visual Studio, а также статья . Как разрешить loopback для приложений Runtime Windows говорит об использовании средства проверки CheckNetIsolation Windows, чтобы включить loopback-доступ для каждого приложения:
CheckNetIsolation.exe LoopbackExempt -s CheckNetIsolation.exe LoopbackExempt –a –p=S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299
Есть также Инструменты GUI, такие как Enable Loopback Utility и Loopback Exemption Manager , которые облегчают эту задачу:
localhost
. Вам все равно необходимо удалить изоляцию сети ( docs.microsoft.com/en-us/previous-versions/windows/apps/… , если вы хотите поговорить с не-упакованным приложением. – Peter Torr - MSFT 11 June 2018 в 01:00