我在我的c#窗體窗體應用程序中出現錯誤,此錯誤僅在Windows 10上發生,並且程序運行在Windows 7中很好。 以下是不工作的代碼部分。 視覺工作室版本:社區2015 謝謝。Visual Studio錯誤在System.Windows.Forms.dll中發生未處理的類型'System.ArgumentNullException'異常
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public struct Mypizzas
{
public string mypizzaname;
public float mypizzaprice;
}
public struct Mypizzasordered
{
public string mypizzaname;
public float mypizzaprice;
public float QtyOrdered;
}
string newpizza;
Mypizzasordered[] Orderlist = new Mypizzasordered[51];
Single mytotalprice;
string numpizzasordered;
int countertest;
int Mycounter;
private void Form1_Load(object sender, EventArgs e)
{
Mypizzas[] myarrayofpizzas = new Mypizzas[6];
myarrayofpizzas[0].mypizzaname = ("Hawaiian");
myarrayofpizzas[0].mypizzaprice = 3.99f;
myarrayofpizzas[1].mypizzaname = "Margherita";
myarrayofpizzas[1].mypizzaprice = 5.99f;
myarrayofpizzas[2].mypizzaname = "Chicago Pizza";
myarrayofpizzas[2].mypizzaprice = 4.99f;
myarrayofpizzas[3].mypizzaname = "New York Style Pizza";
myarrayofpizzas[3].mypizzaprice = 6.5f;
myarrayofpizzas[4].mypizzaname = "Sicilian Pizza";
myarrayofpizzas[4].mypizzaprice = 5.99f;
for (Mycounter = 0; Mycounter <= 6; Mycounter++)
{
listBox1.Items.Add(myarrayofpizzas[Mycounter].mypizzaname);
listBox2.Items.Add(myarrayofpizzas[Mycounter].mypizzaprice);
}
}
該錯誤發生在這條線:listBox1.Items.Add(myarrayofpizzas [Mycounter] .mypizzaname);
myarrayofpizzas被定義爲MyPizzas [6]。這意味着0-5。你的for循環覆蓋0 - 6.使用for(Mycounter = 0; Mycounter <6; Mycounter ++) ' –
@JayBuckman - 雖然這是真的,但它不會創建一個ArgumentNullException。 –
另外,'myarrayofpizzas'是一個包含6個元素的數組。但是,您只能初始化5個元素。最後一個元素的「mypizzaname」保持爲null。請注意,我並不完全確定這是在Win10下導致ArgumentNullException,但它是可能的... – elgonzo