У меня есть источник привязки, который может быть привязан к списку A или списку B. В зависимости от того, является ли это A или B, когда я нажимаю «Сохранить», я хочу вызвать сохранение метод соответствующего репозитория.Функция, возвращающая список различных возможных классов детей
Я был в состоянии создать этот метод, чтобы проверить, если список загрязнен и нуждается в экономии:
private static bool IsDirty<T>(TList<T> list) where T : IEntity, new()
{
foreach (var entity in list)
{
if (entity.IsDirty)
return true;
}
return false;
}
Однако у меня возникли проблемы со следующим:
var list = CurrentTList<A>();
и
private TList<T> CurrentTList<T>() where T: IEntity, new()
{
switch (currentRatesTable)
{
case RatesTables.A:
return (TList<T>) _bindingSourceMaster.List;
case RatesTables.B:
return (TList<T>) _bindingSourceMaster.List;
default:
return null;
}
}
Это лучший способ получить мой текущий список из источника данных? Я хотел бы избежать с помощью переключателя, как это так, как это не выглядит прямо мне:
switch (currentRatesTable)
{
case Form1.RatesTables.A:
var list = CurrentTList<A>();
case Form1.RatesTables.B:
var list = CurrentTList<B>();
// ...
}
Похоже, что вам действительно нужен интерфейс – Sayse
Что вы собираетесь делать с возвращенным «списком»? Что такое «TList»? –
TList список -> общественный класс TList: ListBase где T: IEntity, новый() и ListBase Is общественного абстрактного класса ListBase : BindingList , IBindingListView, IBindingList, IList, ICloneable, ICloneableEx, IListSource, ITypedList, IDisposable, IComponent, IRaiseItemChangedEvents, IDeserializationCallback –
SerenityNow