Я снова извиняюсь, но этот вопрос является продолжением моего первого вопроса:
рассмотреть этот интерфейс:
interface IRepository<T,U> where T:class where U:class
{
IEnumerable<U> SelectAll();
bool Insert(T item);
IEnumerable<T> FindAll(Func<T, bool> exp);
}
и я реализую этот интерфейс:
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; }
}
Я хочу вернуть только 4 столбца таблицы Customer в базе данных Northwind.
Хорошо, это работает, но если я хочу добавить другой метод, который возвращает другие типы, я должен объявить S, U, M, W, ... в интерфейсе и в реализации этого я должен написать этот код:
public class Repository : IRepository<Customer,RetType1,RetType2,RetType3,....>
это нехорошо. Какая альтернатива для этого. Возможно ли, что написать var для типов возврата? Или заполнитель для типов возврата?
спасибо