Ich bin wieder Sorry, aber diese Frage Fortsetzung meiner ersten Frage: diese Schnittstelle berücksichtigen:Rückgabetyp von generischen Methoden
interface IRepository<T,U> where T:class where U:class
{
IEnumerable<U> SelectAll();
bool Insert(T item);
IEnumerable<T> FindAll(Func<T, bool> exp);
}
und ich Implementieren Sie diese Schnittstelle:
public class Repository : IRepository<Customer,Select4ColumnsOfCustomers>
{
#region IRepository<Customer,Select4ColumnsOfCustomers> Members
public IEnumerable<Select4ColumnsOfCustomers> SelectAll()
{
throw new NotImplementedException();
}
public bool Insert(Customer item)
{
throw new NotImplementedException();
}
public IEnumerable<Customer> FindAll(Func<Customer, bool> exp)
{
throw new NotImplementedException();
}
#endregion
}
public class Select4ColumnsOfCustomers
{
public int CustomerID { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string Phone { get; set; }
}
Ich möchte Geben Sie nur 4 Spalte der Customer-Tabelle in der Northwind-Datenbank zurück. Ok.this arbeiten, aber wenn ich eine andere Methode hinzufügen möchten, dass andere Arten zurückgeben muss ich erklären, S, U, M, W, ... im Interface und in der es umsetzen muss ich diesen Code schreiben:
public class Repository : IRepository<Customer,RetType1,RetType2,RetType3,....>
das ist nicht gut.Was ist eine Alternative dafür.Ist es möglich, dass var für Rückgabetypen geschrieben wird oder ein Platzhalter für Rückgabetypen? danke
Verwenden Sie 'Datatable' oder ein ORM für diese Art von Sache. – nan