오류 코드보다 예외를 사용하라 / 작게 만들고 반복되지 않도록 변경
private void SimpleButton_Clicked(object sender, EventArgs e)
{
if (sender is SimpleButton button)
{
if (button.BindingContext is SettingViewItem item)
{
ShowPopup(item);
}
} // button에서 SettingViewItem을 가져올때 오류가 나면 무시하도록 함
}
private void ShowPopup(SettingViewItem item)
{
// ... Show Popup
}
private void SimpleButton_Clicked(object sender, EventArgs e)
{
ShowPopup(GetSettingViewItem(sender));
} // 함수 이름으로 인해 하는 역활이 명확해짐. 작게 만들고 반복되지 않도록 변경
private SettingViewItem GetSettingViewItem(object element)
{
if (element is BindableObject bindableObject)
{
if (bindableObject.BindingContext is SettingViewItem item)
{
return item;
}
}
throw new NsException("Getting SettingViewItem from element is fail.");
}
// Exception으로 예외처리를 해주어 한번에 관리가 가능하도록 변경
private void ShowPopup(SettingViewItem item)
{
// ... Show Popup
}
한가지 이름을 사용하라 / 서술적인 이름을 사용하라
private void Switch_Toggled(object sender, ToggledEventArgs e)
{
ChangeOption(GetSettingViewItem(sender));
} // Setting과 Option을 혼용해서 사용
private void ChangeOption(SettingViewItem item)
{
if (item.Title == "Typhoon")
{
ViewModel.ChangeShowTyphoon();
}
else if (item.Title == "Show Bypass Option")
{
ViewModel.ChangeShowBypassOption();
}
else if (item.Title == "Auto Sign in")
{
ViewModel.ChangeAutoSignIn();
}
}
private void Switch_Toggled(object sender, ToggledEventArgs e)
{
ChangeBooleanSetting(GetSettingViewItem(sender));
} // Setting 으로 명칭 통일 및 Boolean 값이 변경될 것을 알 수 있는
// 서술적인 이름으로 변경
private void ChangeBooleanSetting(SettingViewItem item)
{
if (item.Title == "Typhoon")
{
ViewModel.ChangeShowTyphoon();
}
else if (item.Title == "Show Bypass Option")
{
ViewModel.ChangeShowBypassOption();
}
else if (item.Title == "Auto Sign in")
{
ViewModel.ChangeAutoSignIn();
}
}