我已经搜索了答案并尝试了许多不同的解决方案,但似乎都没有效果!。
使用EveAI http://wiki.eve-id.net/EveAI
System.NullReferenceException:未将对象引用设置为对象的实例。 Form1.PopulateMarketIDs()
private void PopulateMarketIDs()
{
eapi.EveApi MyApi = new eapi.EveApi();
List<int> MarketIDs = new List<int>();
string SelectedItem;
List<EveAI.Product.ProductType> Products = new List<EveAI.Product.ProductType>();
foreach (string item in kryptonListBox1.Items)
{
SelectedItem = item;
foreach (EveAI.Product.ProductType Prod in MyApi.EveApiCore.ProductTypes)
{
if (Prod.MarketGroup != null)
{
if (Prod.MarketGroup.ParentGroup.Name == SelectedItem)
{
Products.Add(Prod);
}
else
{
if (Prod.MarketGroup.Name == SelectedItem)
{
Products.Add(Prod);
}
}
}
}
}
}
kryptonListBox1至少包含一个项目,例如“Mining Drones”。 它工作正常,它列出了应该的产品,但是当它到达最后一个产品(显示)然后崩溃时出现空错误。
我知道它不会返回任何内容,我已经删除了它的输出部分。
答案 0 :(得分:0)
我认为你的麻烦在于
<强> MyApi.EveApiCore.ProductTypes 强>
这是一个静态资源吗?
否则你必须在使用前引用它。
答案 1 :(得分:0)
我已将代码更改为:
foreach (string item in kryptonListBox1.Items)
{
foreach (EveAI.Product.ProductType Prod in MyApi.EveApiCore.ProductTypes)
{
if (Prod.MarketGroup != null)
{
if (Prod.MarketGroup.Name == item)
{
if (Prod.Name.Contains("Blueprint") == false)
{
kryptonListBox2.Items.Add(Prod.Name);
Products.Add(Prod);
}
}
}
}
}
foreach (EveAI.Product.ProductType T in Products)
{
kryptonListBox3.Items.Add(MyApi.EveApiCore.GetIdForObject(T));
}
这很有效。