【发布时间】:2011-04-04 23:34:11
【问题描述】:
如果我在两种类型之间定义一个显式转换运算符,难道不应该遵循我可以在这些类型的集合之间显式转换吗?即。
public static explicit operator FooEntity(Entity entity)
{
FooEntity e = new FooEntity(entity);
return e;
}
因此我可以做到这一点,
IEnumerable<Entity> entities = GetEntities();
IEnumerable<FooEntity> fooEntities = (IEnumerable<FooEntity>)entities;
或
IEnumerable<FooEntity> fooEntities = entities as IEnumerable<FooEntity>
这是否可能以某种方式实现,或者我是否还必须创建自己的运算符才能在集合之间进行转换?我收到一个运行时错误,提示无法进行转换。
谢谢。
【问题讨论】:
标签: c# operator-overloading ienumerable