[英]System.NullReferenceException Handled
這是我為基於事件的簡單加法器編寫的代碼,這是我不斷得到的錯誤:對象引用未設置為對象的實例。
我是一個初學者,所以我在這里出錯了嗎? 我想念什么? 謝謝。
private void txtTwo_TextChanged(object sender, TextChangedEventArgs e)
{
int numberOne, numberTwo, number3;
if (int.TryParse(txtOne.Text, out numberOne))
{
// DO NOTHING
}
else
{
MessageBoxButton buttons = MessageBoxButton.OK;
MessageBoxImage icon = MessageBoxImage.Error;
MessageBox.Show("Not An Integer! Only Integers Allowed !", "Error : First Number", buttons, icon);
txtOne.Clear();
}
if (int.TryParse(txtTwo.Text, out numberTwo))
{
//DO NOTHING
}
else
{
MessageBoxButton buttons2 = MessageBoxButton.OK;
MessageBoxImage icon2 = MessageBoxImage.Error;
MessageBox.Show("Not An Integer! Only Integers Allowed !", "Error : Second Number", buttons2, icon2);
txtTwo.Clear();
}
number3 = numberOne + numberTwo;
string num3 = number3.ToString();
txtOut.Text = num3;
}
在這種情況下,必須將txtOut
為null,因為num3
已初始化。 嘗試在設計器中重命名txtOut
控件,或者刪除並重新創建它。
所以終於明白了。
好吧,num3不能為null,因為它是一個值類型,這意味着txt3為null。 txtOut為null,因為在XAML中設置txtTwo的Text屬性時會引發TextChanged事件,這很可能在創建txtOut TextBox之前發生。
因此解決方案是從XAML中刪除TextChanged事件,並將其放在InitializeComponent之后的構造函數中:
public MainWindow() {
InitializeComponent();
txtTwo.TextChanged += txtTwo_TextChanged;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.