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

尧石 2012-12-03 06:49:14
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就不能转换呢?
...全文
170 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
XBodhi. 2012-12-04
  • 打赏
  • 举报
回复
第一你继承的基础类型 和 系统的不是一个,不存在转换。如果纯在请使用显示转换。
尧石 2012-12-04
  • 打赏
  • 举报
回复
x,y都是输出的这个
尧石 2012-12-04
  • 打赏
  • 举报
回复


是不是这个树节点的类型无法转换呢?
尧石 2012-12-04
  • 打赏
  • 举报
回复
引用 5 楼 caozhy 的回复:
引用 2 楼 ddxxll2008 的回复:是不是这个树节点的类型无法转换呢? ftevent如果不是从treenode派生的,并且没有实现显式类型转换运算符重载,是不能转的。
原来如此,感觉对这一块的理解还不够,谢谢斑竹!
尧石 2012-12-04
  • 打赏
  • 举报
回复
引用 4 楼 qiaohuyue 的回复:
第一你继承的基础类型 和 系统的不是一个,不存在转换。如果纯在请使用显示转换。
好吧,我试试看~~~
threenewbee 2012-12-04
  • 打赏
  • 举报
回复
引用 2 楼 ddxxll2008 的回复:
是不是这个树节点的类型无法转换呢?
ftevent如果不是从treenode派生的,并且没有实现显式类型转换运算符重载,是不能转的。
threenewbee 2012-12-03
  • 打赏
  • 举报
回复
加一个 MessageBox.Show(x.GetType().ToString()); MessageBox.Show(y.GetType().ToString()); 输出什么

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧