2013-02-22 3 views
0

Я пытаюсь сделать приложение, и я просто выясню, как все работает на телефоне Windows.windows-phone-7.1 quits приложение сразу после набора

В эмуляторе Windows Phone я пытаюсь запустить приложение, но он просто возвращается на предыдущий экран без каких-либо ошибок. (Компилятор тоже не дает мне никаких ошибок.)

Даже если я ничего не ставил, кроме этого. Voice = значение все равно не работает.

здесь код, где происходит ошибка:

// volume of the voice of the commentator; 
    public int voice { 
     get 
     { 
      return voice; 
     } 
     set 
     { 
      settings["voice"] = this.voice = (int)value; // right here it just stops. 
     } 

код, где я называю эту функцию является:

public partial class MainPage : PhoneApplicationPage 
{ 
    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 
     // example :: ExceptionHandler.newException("er is geen exception"); 

     Option option = new Option(); 
     option.backgroundMusic = 22; // here 
     option.voice = 32; // here 

    } 
} 

И для общей картины:

Главная:

public partial class MainPage : PhoneApplicationPage 
{ 
    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 
     // example :: ExceptionHandler.newException("er is geen exception"); 

     Option option = new Option(); 
     option.backgroundMusic = 22; 
     option.voice = 32; 

    } 
} 

Класс Опция:

public class Option 
    { 
    // isolated storage settings connection. 
    private static IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; 

    // volume of the backgroundMusic; 
    public int backgroundMusic { 
     get 
     { 
      return backgroundMusic; 
     } 
     set 
     { 
      settings["backgroundMusic"] = this.backgroundMusic = (int)value; 
     } 
    } 

    // volume of the voice of the commentator; 
    public int voice { 
     get 
     { 
      return voice; 
     } 
     set 
     { 
      settings["voice"] = this.voice = (int)value; 
     } 
    } 





    public Option() 
    { 
     // If the keys doesn't exists 
     if (!settings.Contains("backgroundMusic") && !settings.Contains("voice")) 
     { 

      // Create the settings. 
      settings.Add("backgroundMusic", (int)50); 
      settings.Add("voice", (int)50); 
     } 
     // If the key exists, retrieve the value and set the properties of backgroundMusic and voice 
     else 
     { 
      this.backgroundMusic = (int)settings["backgroundMusic"]; 
      this.voice = (int)settings["voice"]; 
     } 
    } 
} 

редактировать:

Я открыт для предложений, если я сделал что-то еще не так или что-то может быть лучше, пожалуйста, сообщите мне.

ответ

0

Бесконечная петля? this.voice = value снова запускает набор, что делает цикл.

Вы должны объявить еще одно поле и использовать его в качестве хранилища ценностей:

private int _voice; 
public int voice 
{ 
    get 
    { 
     return _voice; 
    } 
    set 
    { 
     settings["voice"] = _voice = (int)value; 
    } 
} 

Вы должны сделать то же самое со вторым свойством, а также.

+0

спасибо, что новый для автоматического набора get в C# –

Смежные вопросы