Ho una conversione esplicita definita dal tipo Bar
per digitare Foo
.IEnumerable <T> .Cast non funziona anche se è definito un operatore di cast esplicito?
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; }
}
Tuttavia, quando lo faccio:
using System.Linq;
...
var manyFoos = manyBars.Cast<Foo>();
viene generata un'eccezione dicendo che non può lanciare.
Come faccio a comunicare allo Cast
l'operatore di trasmissione per provare la conversione?
Hai 'Bar'->' conversione foo' definito, ma cercando di fare il contrario. – MarcinJuraszek
Grazie. Scusa, volevo dire il contrario. Ho appena digitato quel codice direttamente nel sito web senza pensarci troppo. Ho fatto la correzione. –
Ancora non corretto. 'Bar.Gar'? da dove viene questo? il bar non ha la proprietà 'Gar' –