如果条件错误
本文关键字:错误 条件 如果 | 更新日期: 2023-09-27 18:29:48
我提出了一个条件,如果变量为null。但由于变量为null,此代码仍然破坏了应用程序。
代码:
var page = IsolatedStorageSettings.ApplicationSettings["qsPage"];
var hash = IsolatedStorageSettings.ApplicationSettings["Ayath"];
if (page == null && hash == null)
// or if i use if (page == null || hash == null)
{
MessageBox.Show("No Bookmark has been saved !");
}
else
{
NavigationService.Navigate(new Uri("/myWeb.xaml?Page=" + page + "&id=" + hash, UriKind.Relative));
}
您必须检查IsolatedStorageSettings.ApplicationSettings["qsPage"];
是否返回null或任何值。试试这个。
object pagedata = null,hashdata = null;
if(IsolatedStorageSettings.ApplicationSettings.Contains("qsPage") && IsolatedStorageSettings.ApplicationSettings.Contains("Ayath"))
{
var page = IsolatedStorageSettings.ApplicationSettings["qsPage"];
var hash = IsolatedStorageSettings.ApplicationSettings["Ayath"];
pagedata = page;
hashdata = hash;
}
if (pagedata == null && hashdata == null)
// or if i use if (page == null || hash == null)
{
MessageBox.Show("No Bookmark has been saved !");
}
else
{
NavigationService.Navigate(new Uri("/myWeb.xaml?Page=" + pagedata + "&id=" + hashdata, UriKind.Relative));
}
尝试:
if (page == null || hash == null)
相反。您的查询要求两个变量都为null。
在if条件中使用&&
,页面可以为null,但哈希为no,因此它转到else子句,由于页面为null,因此它失败。
尝试将&&
替换为||
。这样,每次页面OR哈希为空时,都会显示消息框。
更新:由于页面和哈希变量是字符串,您需要使用string.IsNullOrWhiteSpace测试它们,这样:
var page = IsolatedStorageSettings.ApplicationSettings["qsPage"];
var hash = IsolatedStorageSettings.ApplicationSettings["Ayath"];
if (string.IsNullOrWhiteSpace(page.ToString()) || string.IsNullOrWhiteSpace(hash.ToString()))
{
MessageBox.Show("No Bookmark has been saved !");
}
else
{
NavigationService.Navigate(new Uri("/myWeb.xaml?Page=" + page + "&id=" + hash, UriKind.Relative));
}