首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

没法将对象转换为自定义类型

2012-12-20 
无法将对象转换为自定义类型public class Fteventlistlevelcompare : IComparer//实现用接口按照故障层次

无法将对象转换为自定义类型
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派生的,并且没有实现显式类型转换运算符重载,是不能转的。


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

热点排行