Comments 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
но в любом случае можно поставить свои шрифты вместе с приложением.
stackoverflow.com/questions/14404834/loading-list-of-available-fonts-using-c-sharp-in-winrt
но в любом случае можно поставить свои шрифты вместе с приложением.
Sign up to leave a comment.
Работа с данными в WinRT. Часть 1. Хранение настроек и файлов