【发布时间】:2012-09-17 07:49:39
【问题描述】:
说,我们有 2 个类:
public class A
{
public int a;
}
public class B
{
public int b;
public static implicit operator B(A x)
{
return new B { b = x.a };
}
}
那为什么
A a = new A { a = 0 };
B b = a; //OK
List<A> listA = new List<A> { new A { a = 0 } };
List<B> listB = listA.Cast<B>().ToList(); //throws InvalidCastException
explicit 运算符也是如此。
P.S.:手动(单独)投射每个元素
List<B> listB = listA.Select<A, B>(s => s).ToList(); //OK
【问题讨论】:
标签: c# casting ienumerable