[英]if statement with no result in C# VS 2012
我在VS 2012中有這樣的代碼:
private void Form1_Load(object sender, EventArgs e)
{
if (Properties.Settings.Default["Database"] != null)
{
MessageBox.Show("We landed on spot 1");
}
else
{
MessageBox.Show("We landed on spot 2");
}
}
我很確定自己弄亂了條件語法,但是我希望會發生以下情況之一:
但是,這些都不實際發生。 我已經盯着這個看了一個小時,可以找到的資源卻很少。 如果有經驗的人可以向我解釋一下這里實際發生了什么?
編輯:感謝JMK的鏈接,我發現這基本上是Windows x64下VS調試器中彈出的wintfix錯誤。 如果應用程序在調試器外部運行,則會引發錯誤。
它默默地出錯。
try
{
if (Properties.Settings.Default["Database"] != null)
{
MessageBox.Show("We landed on spot 1");
}
else
{
MessageBox.Show("We landed on spot 2");
}
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
返回“找不到設置屬性“數據庫””
嘗試在Properties
之前添加項目名稱空間
if (WindowsFormsApplication2.Properties.Settings.Default.Database != null)
可能會引發異常,調試器不會注意到該異常。 對於64位Windows版本上的Windows Forms項目,會發生這種情況(不是特定於.NET的行為,而是Windows的一般行為)。
此處有更多詳細信息: Visual Studio不會在Form_Load事件中發生異常時中斷
嘗試按STRG + ALT + E
並選中“公共語言運行時異常”復選框“引發”。 現在調試器將在Form_Load()中的任何異常上中斷
既然我知道我的解決方法是完全避免使用Load事件。
我的大多數窗體都是對話框,因此我對ShowDialog()方法進行了陰影處理並調用了Init()函數。
public class Form1
{
public new DialogResult ShowDialog()
{
Init();
return base.ShowDialog();
}
public new DialogResult ShowDialog(IWin32Window owner)
{
Init();
return base.ShowDialog(owner);
}
public void Init()
{
// code goes here
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.