Ich habe eine explizite Konvertierung vom Typ Bar
zum Typ Foo
definiert.IEnumerable <T> .Cast funktioniert nicht, selbst wenn ein expliziter Umwandlungsoperator definiert ist?
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; }
}
Allerdings, wenn ich tun:
using System.Linq;
...
var manyFoos = manyBars.Cast<Foo>();
Es löst eine Ausnahme sagen, dass es nicht werfen kann.
Wie kann ich Cast
mitteilen, dass ich meinen Umwandlungsoperator verwenden soll?
Sie haben 'Bar'-> 'foo' Umwandlung definiert, sondern versuchen, das Gegenteil zu tun. – MarcinJuraszek
Danke. Entschuldigung, ich meinte das Gegenteil. Ich habe diesen Code direkt in die Website eingegeben, ohne zu viel nachzudenken. Ich habe die Korrektur vorgenommen. –
Immer noch nicht korrekt. 'bar.Gar'? woher kommt das? Bar hat keine Eigenschaft 'Gar' –