Слайд 2Типы хранилища
Коллекция Properites в классе Application
Настройки (Preferences) операционной системы
Файлы
Базы данных
![Типы хранилища Коллекция Properites в классе Application Настройки (Preferences) операционной системы Файлы Базы данных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-1.jpg)
Слайд 3Свойство Properites
Свойство Properties класса Application представляет словарь, где каждому ключу с типом
![Свойство Properites Свойство Properties класса Application представляет словарь, где каждому ключу с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-2.jpg)
string сопоставляется некоторое значение
Слайд 4Добавление данных в словарь
App.Current.Properties.Add("name", "Tom");
// или так
App.Current.Properties["name"] = "Tom";
![Добавление данных в словарь App.Current.Properties.Add("name", "Tom"); // или так App.Current.Properties["name"] = "Tom";](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-3.jpg)
Слайд 5Получение значения
string name = App.Current.Properties["name"];
![Получение значения string name = App.Current.Properties["name"];](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-4.jpg)
Слайд 6Удаление
App.Current.Properties.Remove("name");
![Удаление App.Current.Properties.Remove("name");](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-5.jpg)
Слайд 7Настройки приложения
В Xamarin Forms для работы с настройками мы можем использовать функциональность
![Настройки приложения В Xamarin Forms для работы с настройками мы можем использовать](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-6.jpg)
из пакета Xamarin Essentials, который добавляется в проект Xamarin Forms по умолчанию
Слайд 8Настройки приложения
Все настройки доступны через свойство Preferences, который предоставляет для работы с
![Настройки приложения Все настройки доступны через свойство Preferences, который предоставляет для работы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-7.jpg)
настройками следующие методы:
void Set(key, value): сохранение значения value по ключу key
string Get(key, defaultValue): получение значения по ключу key. Если же настроек с таким ключом нет, то возвращается значение по умолчанию - defaultValue
void Remove(key): удаляет настройку с ключом key
void Clear(): удаляет все настройки
bool ContainsKey(key): возвращает true, если имеется настройка с ключом key
Слайд 9Для сохранения применяется метод Set()
// сохраняем значение Tom по ключу name
Preferences.Set("name", "Tom");
![Для сохранения применяется метод Set() // сохраняем значение Tom по ключу name Preferences.Set("name", "Tom");](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-8.jpg)
Слайд 10Получение сохраненного значения по ключу
string name = Preferences.Get("name");
// если объекта нет используем
![Получение сохраненного значения по ключу string name = Preferences.Get("name"); // если объекта](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-9.jpg)
значение по умолчанию - "не известно"
string name2 = Preferences.Get("name", "не известно");
Слайд 11Удаление
Preferences.Remove("name");
![Удаление Preferences.Remove("name");](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-10.jpg)
Слайд 12Файлы
Для работы с файлами предназначена пара классов File и FileInfo. С их
![Файлы Для работы с файлами предназначена пара классов File и FileInfo. С](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-11.jpg)
помощью мы можем создавать, удалять, перемещать файлы, получать их свойства и многое другое
Слайд 13Полезные методы и свойства класса FileInfo
CopyTo(path): копирует файл в новое место по
![Полезные методы и свойства класса FileInfo CopyTo(path): копирует файл в новое место](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-12.jpg)
указанному пути path
Create(): создает файл
Delete(): удаляет файл
MoveTo(destFileName): перемещает файл в новое место
Свойство Directory: получает родительский каталог в виде объекта DirectoryInfo
Свойство DirectoryName: получает полный путь к родительскому каталогу
Свойство Exists: указывает, существует ли файл
Свойство Length: получает размер файла
Свойство Extension: получает расширение файла
Свойство Name: получает имя файла
Свойство FullName: получает полное имя файла
Слайд 14Класс File реализует похожую функциональность с помощью статических методов
Copy(): копирует файл в
![Класс File реализует похожую функциональность с помощью статических методов Copy(): копирует файл](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-13.jpg)
новое место
Create(): создает файл
Delete(): удаляет файл
Move: перемещает файл в новое место
Exists(file): определяет, существует ли файл
Слайд 15Запись в файл и StreamWriter
StreamWriter(string path): через параметр path передается путь к
![Запись в файл и StreamWriter StreamWriter(string path): через параметр path передается путь](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-14.jpg)
файлу, который будет связан с потоком
StreamWriter(string path, bool append): параметр append указывает, надо ли добавлять в конец файла данные или же перезаписывать файл. Если равно true, то новые данные добавляются в конец файла. Если равно false, то файл перезаписываетсяя заново
StreamWriter(string path, bool append, System.Text.Encoding encoding): параметр encoding указывает на кодировку, которая будет применяться при записи
Слайд 16Свою функциональность StreamWriter реализует через следующие методы
int Close(): закрывает записываемый файл и
![Свою функциональность StreamWriter реализует через следующие методы int Close(): закрывает записываемый файл](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-15.jpg)
освобождает все ресурсы
void Flush(): записывает в файл оставшиеся в буфере данные и очищает буфер.
Task FlushAsync(): асинхронная версия метода Flush
void Write(string value): записывает в файл данные простейших типов, как int, double, char, string и т.д. Соответственно имеет ряд перегруженных версий для записи данных элементарных типов, например, Write(char value), Write(int value), Write(double value) и т.д.
Task WriteAsync(string value): асинхронная версия метода Write
void WriteLine(string value): также записывает данные, только после записи добавляет в файл символ окончания строки
Task WriteLineAsync(string value): асинхронная версия метода WriteLine
Слайд 17Чтение из файла и StreamReader
Класс StreamReader позволяет нам легко считывать весь текст
![Чтение из файла и StreamReader Класс StreamReader позволяет нам легко считывать весь](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-16.jpg)
или отдельные строки из текстового файла.
Слайд 18Конструкторы класса StreamReader
StreamReader(string path): через параметр path передается путь к считываемому файлу
StreamReader(string
![Конструкторы класса StreamReader StreamReader(string path): через параметр path передается путь к считываемому](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852441/slide-17.jpg)
path, System.Text.Encoding encoding): параметр encoding задает кодировку для чтения файла