오류 코드보다 예외를 사용하라 / 작게 만들고 반복되지 않도록 변경

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();
    }
}