Как стать автором
Обновить

Комментарии 12

А что лучше, проверять наличие ключа перед попыткой его получить, или ловить Exception?
Это скорее вопрос к логике приложения, к примеру может у вас есть смысл возвращать какое то значение по умолчанию (допустим 10 для уровня звука). В целом я отдаю предпочтение проверке наличие ключа.
Просто интересно есть ли какие-то существенный различия, например падение производительности. Из того что я заметил, в catch нельзя использовать await, приходится выставлять флаг, а потом проверять его наличие и вызывать асинхронный метод.

var settings = ApplicationData.Current.LocalSettings; if (settings.Values.ContainsKey(«pageNumber»)) { var number= (int)settings.Values[«pageNumber»]; } else { var number = 10; } try { var number= (int)settings.Values[«pageNumber»]; } catch (NullReferenceException e) { var number = 10; }
Одной из причин почему отдаю предпочтение проверке ключа это производительность. В целом исключениями предпочитаю пользоваться для упрощения логики и повышения читабельности кода, если исключение выбрасывается действительно редко.
НЛО прилетело и опубликовало эту надпись здесь
К сожалению нет. В своих проектах я использовал типовую самописную обертку предоставляющую в одной строке или значение из хранилища или дефолтное значение которое не обязательно было использовать. Код обертки настолько прост что соменвался в ее полезности в статье.
Наверное нет, еще больше доставляет работа с файлами в папках. Для проверки существования файла нет стандартных методов, так что нужно попытаться считать файл, и ловить исключение. При этом в исключении нельзя использовать асинхронные функции, а все функции работы с файлами асинхронные. В итоге получаем такой код

bool filenotfound = false; try{ // try to read file } catch { filenotfound = true; } if (filenotfound ) { // create file }
исключения всегда не самым лучшим образом влияют на производительность
Проверка на нулл будет более правильным использование, потому что генерация исключения это гораздо сложенее операция — нужно создавать объект исключения, заполнять стек исключения, а это гораздо больше времени займёт.
Как можно приложению получить доступ к системным шрифтам?
Поискав, понял, что на сегодняшний день такой возможности нет.
В принципе можно получить доступ к списку доступных шрифтов
stackoverflow.com/questions/14404834/loading-list-of-available-fonts-using-c-sharp-in-winrt
но в любом случае можно поставить свои шрифты вместе с приложением.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории