//--------------定义一个结构体--------------
struct stuNode
{
public int Node;
public int sendTimes;
public System.DateTime dt;
}
//-----------定义一个ArrayList实例ReSend-------
ArrayList ReSend=new ArrayList();
//---------定义stuNode结构体的实例TestNode---
stuNode TestNode=new stuNode;
//---------结构体的实例TestNode赋值后加入ArrayList实例ReSend-----------
for(int i=0;i<10;i++)
{
TestNode.Node=i;
TestNode.sendTimes=i;
TestNode.dt=System.DateTime.Now;
ReSend.Add(TestNode);
}
//---定义stuNode结构体的实例Temp用于存放从ArrayList中读出的数据---------------------------
stuNode temp=new stuNode();
//---如果队列不空的话就从中读出节点数据并显不出其中Node域的值---------------
if (ReSend.Count>0 )
{
for(int i=0;i<ReSend.Count;i++)
{
temp=(stuNode)ReSend[i]; //----读出值并做强制转换为stuNode型
MessageBox.Show(temp.Node.ToString());
}
}
//****************************************************************************************
以上代码在编译时没出错误,但运行时出错提示:未处理的“System.InvalidCastException”类型的异常出现在 Test.exe 中。其他信息: 指定的转换无效。并指示temp=(stuNode)ReSend[i];这一句错误。但是如果不做强制类型转换如:temp=ReSend[i]; 则在编译就通过不了出现:"无法将类型“object”隐式转换为“temp”。请问怎样解决这个问题。谢谢
"
//以下是我调试过的程序,应该没有问题,你可以在你的机器上试一试,如果仍然有问题,请和我联系liulzh@vip.sina.com Good luck.
/*************************************/
using System;
using System.Collections;
//--------------定义一个结构体--------------
namespace RobossLiu{
struct stuNode
{
public int Node;
public int sendTimes;
public System.DateTime dt;
}
public class MainApp{
public static void Main(){
//-----------定义一个ArrayList实例ReSend-------
ArrayList ReSend=new ArrayList();
//---------定义stuNode结构体的实例TestNode---
stuNode TestNode = new stuNode();
//---------结构体的实例TestNode赋值后加入ArrayList实例ReSend-----------
for(int i=0;i<10;i++)
{
TestNode.Node=i;
TestNode.sendTimes=i;
TestNode.dt=System.DateTime.Now;
ReSend.Add(TestNode);
}
//---定义stuNode结构体的实例Temp用于存放从ArrayList中读出的数据---------------------------
stuNode temp=new stuNode();
//---如果队列不空的话就从中读出节点数据并显不出其中Node域的值---------------
if (ReSend.Count>0 )
{
for(int i=0;i<ReSend.Count;i++)
{
temp=(stuNode)ReSend[i]; //----读出值并做强制转换为stuNode型
//MessageBox.Show(temp.Node.ToString());
System.Console.WriteLine(temp.Node.ToString());
}
}
}
}
}
*************************/