我的开发环境:win2003+VS.net2003代码如下:
public ArrayList mList = new ArrayList();int i = 1;ArrayList message = new ArrayList();
message.Add("Get");
message.Add(i); try
{
mList = (ArrayList) message[1];//这行提示出错,错误提示为“指定的转换无效”
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
我应该怎样进行类型转换呢?希望大家看看,帮帮忙,非常感谢
public ArrayList mList = new ArrayList();int i = 1;ArrayList message = new ArrayList();
message.Add("Get");
message.Add(i); try
{
mList = (ArrayList) message[1];//这行提示出错,错误提示为“指定的转换无效”
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
我应该怎样进行类型转换呢?希望大家看看,帮帮忙,非常感谢
另外,建议你不要往列表里添加不同类型的东西~
message[1];//是什么啊?
ArrayList message = new ArrayList();
message.Add("Get");
message.Add(i); //是int型的i
{
mValue= (int) message[1];
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
就是因为这样才强制类型转换的。如果不是,直接这样 mList = message 就好了,不必 mList = (ArrayList) message
message[1] 是 message 集合中的第二个对象,在这里它是一个int型,当然语法上它是object,所以应该该这样强转(int) message[1]
(ArrayList) message[1],把一个int型转换成ArrayList 当然会报错了
你到底需要什么样的结果。如果是想取message中的每一项可以用
mList.add(message[i]);
message.Add("Get"); //字符串型
message.Add(i); //int型
你觉得编译器会自动转换而不报错?
message.Add("Get");
message.Add(i); try
{
mList.Add(message[1]);//这行提示出错,错误提示为“指定的转换无效”
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
上面的人都在胡扯!再强制转换也转换不过来,就像输入一个字符,非要转换成数字一样