====== 018 キーによる値の保存、読み込み ====== {{:wiki:windowsphone:7.1:tips:w_phone_018_001.png?200|}} ===== 概要 ===== キー(Key) と 値(Value) の組み合わせで情報を保存します。インストールしたアプリを削除すると保存した情報は削除されます。using System.IO.IsolatedStorageの名前空間を追加するのを忘れずに。 ==== MainPage.xaml.cs ==== using System; using System.Collections.Generic; using System.IO.IsolatedStorage; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Media.Imaging; using System.Windows.Shapes; using Microsoft.Phone.Controls; namespace BaseApp { // エントリーポイント public partial class MainPage : PhoneApplicationPage { // コンストラクタ public MainPage() { // コンポーネントの初期化。 InitializeComponent(); // 初期化完了後に呼ばれるメソッドの登録。 Loaded += OnLoaded; } // 初期化完了後に呼ばれるメソッド。 void OnLoaded(object sender, RoutedEventArgs args) { // セーブデータに情報を追加。 AddSaveData( "KEY_1", 100 ); AddSaveData( "KEY_2", 43.3f); AddSaveData( "KEY_3", "Windows Phone 7" ); // 保存。 Save(); // セーブデータ取得。 int int_value = GetSaveData("KEY_1", 0); float float_value = GetSaveData("KEY_2", 0.5f); String string_value = GetSaveData("KEY_3", "empty"); // 結果を出力。 System.Diagnostics.Debug.WriteLine("KEY_1 = {0}", int_value); System.Diagnostics.Debug.WriteLine("KEY_2 = {0}", float_value); System.Diagnostics.Debug.WriteLine("KEY_3 = {0}", string_value); } // 保存。 private void Save() { IsolatedStorageSettings isolatedStore = IsolatedStorageSettings.ApplicationSettings; isolatedStore.Save(); } // 保存するキーと値のセット。 private void AddSaveData(String _Key, valueType _value) { IsolatedStorageSettings isolatedStore = IsolatedStorageSettings.ApplicationSettings; try { // 既に存在するキーであり、値が変更されている場合。 if( isolatedStore[_Key].ToString() != _value.ToString() ) { // 新規に設定する。 isolatedStore[_Key] = _value; } } // 一致するKeyが無い場合 catch(KeyNotFoundException) { // キーを追加 isolatedStore.Add(_Key, _value); } } // 保存されたキーと値の取得。 public valueType GetSaveData(String _Key, valueType _value) { IsolatedStorageSettings isolatedStore = IsolatedStorageSettings.ApplicationSettings; valueType value; try { // 取得。 value = (valueType)isolatedStore[_Key]; } //一致するKeyが無い場合 catch(KeyNotFoundException) { value = _value; } return value; } } }