IEnumerable <T> .Cast nie zadziała, nawet jeśli zdefiniowany jest jawny operator rzutowania?
Mam jawną konwersję zdefiniowaną z typuBar
pisaćFoo
.
public class Bar
{
public static explicit operator Foo(Bar bar)
{
return new Foo(bar.Gar);
}
}
public class Foo
{
public string Gar { get; set; }
public Foo() { }
public Foo(string gar) { Gar = gar; }
}
Jednak kiedy to robię:
using System.Linq;
...
var manyFoos = manyBars.Cast<Foo>();
Zgłasza wyjątek mówiąc, że nie może rzucić.
Jak mam to powiedziećCast
użyć mojego operatora rzutowania do wypróbowania konwersji?