异常!System.NullReferenceException: 未将对象引用设置到对象的实例

u010501944 2013-04-29 12:15:17
	
//========================= ItemDTO 定义
public class ItemDTO
{
public int id;
public int itemId;
public int itemNum;
public string outTime;
public int roleId;
public int storageType;
}
//========================= GardenSeed 定义
public class GardenSeed : ObjBase
{
public int SeedTime
{
get
{
return Convert.ToInt32(base.Columns["SeedTime"].Value);
}
set
{
base.Columns["SeedTime"].Value = value;
}
}
public string SeedGetMoney
{
get
{
return Convert.ToString(base.Columns["SeedGetMoney"].Value);
}
set
{
base.Columns["SeedGetMoney"].Value = value;
}
}
public int ID
{
get
{
return Convert.ToInt32(base.Columns["ID"].Value);
}
set
{
base.Columns["ID"].Value = value;
}
}
public int SeedID
{
get
{
return Convert.ToInt32(base.Columns["SeedID"].Value);
}
set
{
base.Columns["SeedID"].Value = value;
}
}
public GardenSeed()
{
base.TableName = "GardenSeed";
base.AddColumn(new Column("SeedTime", ColumnType.Int));
base.AddColumn(new Column("SeedGetMoney", ColumnType.String));
base.AddColumn(new Column("ID", "0", ColumnType.Int, true, IdentityType.Normal));
base.AddColumn(new Column("SeedID", ColumnType.Int));
}
}
//========================= 出错地方
public class PackagMgr : BaseMgr
{
public static List<ItemDTO> CURRENT_PACAGE = new List<ItemDTO>();
private MyGM myGM_0 = GM.CreateNewGM();
private ResourceMgr resourceMgr_0 = new ResourceMgr();
public void Test()
{
ResourceMgr resourceMgr = new ResourceMgr();
foreach (ItemDTO current in PackagMgr.CURRENT_PACAGE)
{
Console.WriteLine(string.Concat(new object[]
{
current.itemId,
":",
resourceMgr.GetItemByItemID(current.itemId).MyName,
":",
current.itemNum,
" st:",
current.storageType
}));
}
}

public ItemDTO method_0(int id)
{
ItemDTO result;

for (int i = 0; i < PackagMgr.CURRENT_PACAGE.Count; i++)//出错
{

if (PackagMgr.CURRENT_PACAGE[i].id == id)
{
result = PackagMgr.CURRENT_PACAGE[i];
return result;
}
}

result = null;
return result;
}

public ItemDTO GetItemByItemID(int id)
{
ItemDTO result;
for (int i = 0; i < PackagMgr.CURRENT_PACAGE.Count; i++)//出错
{

if (PackagMgr.CURRENT_PACAGE[i].itemId == id)
{
result = PackagMgr.CURRENT_PACAGE[i];
return result;
}

}
result = null;
return result;
}
//=================调用
foreach (EquipDTO current in DataCenter.CURRENT_EQUIPS)
{
string[] array = new string[4];
ItemDTO itemDTO = packagMgr.method_0(current.id);//调用method_0
if (itemDTO != null)
{
Item itemByItemID = resourceMgr.GetItemByItemID(itemDTO.itemId);
//调用GetItemByItemID
if (itemByItemID != null)
{

array[0] = itemByItemID.MyName;

}
}

//------调用
private void method_15()
{
this.util_0.ClearLV(this.lv_seed);
ResourceMgr resourceMgr = new ResourceMgr();
List<GardenSeed> gardenSeed = resourceMgr.GetGardenSeed();
if (gardenSeed != null && gardenSeed.Count != 0)
{
List<string[]> list = new List<string[]>();
PackagMgr packagMgr = new PackagMgr();
foreach (GardenSeed current in gardenSeed)
{
string[] array = new string[4];
array[0] = resourceMgr.GetItemNameByItemID(current.SeedID);
array[1] = current.SeedTime.ToString() + "天";
array[2] = "0";

ItemDTO itemByItemID = packagMgr.GetItemByItemID(current.SeedID);
//调用GetItemByItemID
if (itemByItemID != null)
{
array[2] = itemByItemID.itemNum.ToString();
}
array[3] = current.SeedID.ToString();
list.Add(array);







[]未处理异常!System.NullReferenceException: 未将对象引用设置到对象的实例。
在 Manager.PackagMgr.GetItemByItemID(Int32 id) 位置 E:\工程\PackagMgr.cs:行号 60
百度好久 发现出现这个问题都是 未初始化 和 NULL值
public static List<ItemDTO> CURRENT_PACAGE后面加上了new List<ItemDTO>();
还是不行
不知道怎么弄啊 求各位大哥帮帮忙
...全文
60 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn_风中雪狼 2013-04-29
  • 打赏
  • 举报
回复
对象为null 出错的地方,断点进去看看,对了个对象值为null
u010501944 2013-04-29
  • 打赏
  • 举报
回复
引用 1 楼 lzxue1989 的回复:
对象为null 出错的地方,断点进去看看,对了个对象值为null
谢谢 加了个 PackagMgr.CURRENT_PACAGE != null 成功了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧