In meinem BL (eine öffentliche API sein), ich bin mit ICollection als die Rückgabetypen in meinen Find-Methoden, wie:Frage zum Rückgabetyp mit Sammlungen
public static ICollection<Customer> FindCustomers()
{
Collection<Customer> customers = DAL.GetCustomers();
return customers;
}
Beachten Sie die Verwendung von ICollection statt Sammlung <>.
Jetzt in meinem GUI, ich brauche die Ergebnisse zurück an Sammlung zu werfen, wie:
Collection<Customer> customers = (Collection<Customer>)BL.FindCustomers();
Das ist, weil ich eine Sammlung <> spezifische Methoden auf meine zurückgegebene Liste verwenden müssen, was ich nicht tun kann, mit ICollection <>.
Ist dies die korrekte Verwendung? Oder sollte ich einfach den Rückgabetyp von Collection <> stattdessen zu ICollection <> ändern, um dieses Casting zu vermeiden?
Zweitens habe ich IEnumerable nicht verwendet, weil es allgemeiner als ICollection ist und nicht einmal einfache Eigenschaften wie Count hat. Und ich sehe keinen Sinn darin, die Rückgabetypen hier zu verallgemeinern. Fehle ich etwas Wichtiges?