日期:2014-05-17  浏览次数:20920 次

无法将对象转换为自定义类型
public class Fteventlistlevelcompare : IComparer//实现用接口按照故障层次排序
        {
            public int Compare(object x, object y)
            {
                return new CaseInsensitiveComparer().Compare(((TreeNode)x).Level, ((TreeNode)y).Level);
                //return new CaseInsensitiveComparer().Compare(((Ftevent)x).ftlevel, ((Ftevent)y).ftlevel);
            }
        }

为什么用TreeNode就可以对x进行类型转换,而用我自己定义的Ftevent就不能转换呢?
------最佳解决方案--------------------
加一个
MessageBox.Show(x.GetType().ToString());
MessageBox.Show(y.GetType().ToString());
输出什么
------其他解决方案--------------------
第一你继承的基础类型 和 系统的不是一个,不存在转换。如果纯在请使用显示转换。


------其他解决方案--------------------


是不是这个树节点的类型无法转换呢?
------其他解决方案--------------------
x,y都是输出的这个
------其他解决方案--------------------
引用:
是不是这个树节点的类型无法转换呢?

ftevent如果不是从treenode派生的,并且没有实现显式类型转换运算符重载,是不能转的。
------其他解决方案--------------------
引用:
第一你继承的基础类型 和 系统的不是一个,不存在转换。如果纯在请使用显示转换。


好吧,我试试看~~~
------其他解决方案--------------------
引用:
引用:是不是这个树节点的类型无法转换呢?
ftevent如果不是从treenode派生的,并且没有实现显式类型转换运算符重载,是不能转的。


原来如此,感觉对这一块的理解还不够,谢谢斑竹!