[英]C# Object reference not set to an instance of an object
我得到的對象引用沒有設置為第43行的對象實例,我無法弄清楚為什么,我搜索網絡,似乎無法找到答案。 我是C#的新手,一般都是編程,並且正在努力學習。 如果有人可以幫助我,那就太好了
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace test
{
public partial class Form1 : Form
{
[Serializable]
public class ore
{
public float Titan;
public float Eperton;
}
ore b1 = null;
ore b2 = null;
public Form1()
{
InitializeComponent();
ore b2 = new ore();
ore b1 = new ore();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
float tempFloat;
if (float.TryParse(textBox1.Text, out tempFloat))
{
b1.Titan = tempFloat; //line 43; where error happens
}
else
MessageBox.Show("uh oh");
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
float tempFloat;
if (float.TryParse(textBox1.Text, out tempFloat))
{
b2.Eperton = tempFloat;
}
else
MessageBox.Show("uh oh");
}
private void button1_Click(object sender, EventArgs e)
{
List<ore> oreData = new List<ore>();
oreData.Add(b1);
oreData.Add(b2);
FileStream fs = new FileStream("ore.dat", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, oreData);
fs.Close();
}
}
}
我假設它在任何b1 / b2引用上都失敗了。
ore b1 = null;
ore b2 = null;
在這里,您要為您的班級聲明兩個私有變量
ore b2 = new ore();
ore b1 = new ore();
在這里,您為該方法調用聲明了兩個局部變量。 你沒有改變原始變量。 將其更改為:
b2 = new ore();
b1 = new ore();
你永遠不會分配字段b1
。 您在構造函數中分配的b1
是局部變量。 將構造函數中的代碼更改為:
b2 = new ore();
b1 = new ore();
將構造函數更改為:
public Form1()
{
InitializeComponent();
b2 = new ore();
b1 = new ore();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.