楼主 我感觉你的代码有问题Inf 是哪里来的?
BList2[0] 是什么时候赋值的?不过我估计应该是因为你BList2[0] 也就是ALis[0] 存的是一个AS结构体的实例
所以这句正常 Inf1 = (AS )(BLis2[0]);//正常运行; 而这里就不行了 Inf2 = (BS )(BLis2[0]);//{"指定的转换无效。" }因为你没有定义AS转化为BS结构的规则啊 虽然他们看起来结构一样的~
解决方案 »
- 为什么显示不出来?
- foreach (XmlNode xn in nodelist)如何转变为for循环
- 关于Access做数据库的时候怎么改文件的相对路径。
- 在线等:如何获取Repeater中DropDownList的所选值,有劳大家了!
- HTML的问题
- Crystalreport水晶报表如何加入FORM中自定义的字段
- WPF浏览器应用程序中页面与页面之间如何传递参数
- 用C#实现一个类,要求该类只能被实例化一次,怎么写?谢谢
- 用C#调用C++DLL,总是提示找不到DLL,请求高手帮助!
- 最近装了SQL2008R2连接的时候出现了这样的错误
- 正常网址后再加"/"再加一些字符导致网站组塞以致崩溃的问题
- 帮帮忙
AS和BS是不兼容的类型,当然无法转换了.
private ArrayList ALis1 = new ArrayList ();
public ArrayList ALis1Status
{
set { ALis1Status= value;}
}
private struct AS
{
public float LoaX;
public float LoaY;
};
private AS Inf1;
private ArrayList BLis2 = new ArrayList ();
private struct BS //每组数据以结构体的形式存储;
{
public float LoaX;
public float LoaY;
};
private BS Inf2;
private void button1_Click(object sender, System.EventArgs e)
{
Inf1.LoaX=1;
Inf1.LoaY=2;
BLis2.Add (Inf1);
}
private void button2_Click(object sender, System.EventArgs e)
{
BLis2 = ALis1 ;
Inf1 = (AS )(BLis2[0]);//正常运行;
Inf2 = (BS )(BLis2[0]);//{"指定的转换无效。" }
Inf2 = (BS )Inf1; //{"指定的转换无效。" }
}
private ArrayList ALis1 = new ArrayList ();
public ArrayList ALis1Status
{
set { ALis1Status= value;}
}
private struct AS
{
public float LoaX;
public float LoaY;
};
private AS Inf1;
private ArrayList BLis2 = new ArrayList ();
private struct BS //每组数据以结构体的形式存储;
{
public float LoaX;
public float LoaY;
};
private BS Inf2;
private void button1_Click(object sender, System.EventArgs e)
{
Inf1.LoaX=1;
Inf1.LoaY=2;
ALis1.Add (Inf1);
}
private void button2_Click(object sender, System.EventArgs e)
{
BLis2 = ALis1 ;
Inf1 = (AS )(BLis2[0]);//正常运行;
Inf2 = (BS )(BLis2[0]);//{"指定的转换无效。" }
Inf2 = (BS )Inf1; //{"指定的转换无效。" }
}
所以虽然BList[0]是一个object对象 但可以正常强制转化为一个AS类型的对象
也就是这句正常 Inf1 = (AS )(BLis2[0]);//正常运行; 而这里就不行了 Inf2 = (BS )(BLis2[0]);//{"指定的转换无效。" } 因为虽然他们看起来结构是一摸一样的~
但是是2个不同类型的对象
你要把实际上类型是AS结构的object转化为BS结构的
却没有定义AS转化为BS结构的规则就是指定的转换无效了
只是指出问题所在了
不知道楼主要干什么
所以也指不出解决办法了