Я бы предложил использовать 127.0.0.1
вместо localhost
adb -s 127.0.0.1:4444 uninstall example.com.yourappname
Нет, блок finally будет выполняться ВСЕГДА. Вы можете получить объект не из нового, а из какой-то другой функции, которая возвращает ваш объект, и она может вернуть NULL. using () - ваш друг!
dss539 любезно предложил мне включить его примечание:
using(Simple simp = null)
- еще одна причина, по которой расширение должно сначала проверять наличие null.
использование (Simple simp = null)
- это еще еще одна причина, по которой раскрытие сначала должно проверять наличие null.
MSDN для оператора using.
Что мне кажется странным, так это то, что он не расширяется до:
Simple simp = new Simple();
Simple __compilergeneratedtmpname = simp;
try
{
Console.WriteLine("here");
}
finally
{
if(__compilergeneratedtmpname != null)
{
__compilergeneratedtmpname.Dispose();
}
}
Похоже, ваш комментарий:
"Если есть опасения, что между Простым конструктором и началом блока try могут возникнуть какие-то промежуточные шаги , тогда это действительно будет проблемой, потому что тогда может быть сгенерировано исключение, которое вообще предотвратит выполнение блока finally ».
, возможно, мертв. См .:
Атомарность и ошибки асинхронных исключений
Я также хочу отметить проблему (и) с WCF и использованием:
Как избежать проблем с оператором Using и прокси-серверами WCF , который ссылается на: