2015-10-01 2 views
0

У меня есть список объектов:Как реализовать Список <T,T>?

MyDisplayObjects = new List<ISave> { Patient, ServiceBilling, ReferredBy, POA, PrimaryInsurance, SecondaryInsurance }; 

Где каждый объект наследуется от ISave так что

foreach (var o in MyDisplayObjects) 
{ 
    o.CanSaveEvent += new EventHandler<CanSaveEventArgs>(CanSaveEventHandler); 
} 

отлично работает.

Теперь я хочу, чтобы добавить отдельный интерфейс для каждого объекта, ISelfPay и сделать:

MyDisplayObjects = new List<ISave,ISelfPay> { Patient, ServiceBilling, ReferredBy, POA, PrimaryInsurance, SecondaryInsurance }; 

Так что это тоже будет работать:

foreach (var o in MyDisplayObjects) 
{ 
    o.CanSaveEvent += new EventHandler<CanSaveEventArgs>(CanSaveEventHandler); 
    this.SelfPayEvent += new EventHandler<SelfPayEventArgs>(o.CheckInViewModel_SelfPayEvent); 
} 

Error: Cannot initialize object of type List <'ISave,ISelfPay'> with a collection initializer.

Я не могу

чтобы найти большую помощь с Google. Как это делается?

(я мог бы сделать два списка, но я хотел бы узнать, как сделать это с помощью одного списка, если это вообще возможно. :)

ТИА

+3

Единственное, что я могу придумать, это создать специальный интерфейс, который разделяет все объекты. – kevintjuh93

+0

@ kevintjuh93 Это именно то, что предлагает VS. :) Благодаря. –

+2

Не можете использовать словарь? –

ответ

6

Я предполагаю, что вы хотите, чтобы ваш список заселяться пунктами, которые и могущий быть спасенным (ISave) и сам платит (ISelfPay)

для того, чтобы получить компилировать безопасность времени для этого functinality, вы должны определить единый интерфейс, который включает в себя оба этих интерфейсов.

public interface ISaveAndSelfPay : ISelfPay, ISave 
{ 
} 

var listOfSavableAndSelfPayableThings = new List<ISaveAndSelfPay>(); 
+0

Более безопасный, плюс код чистки (без приведения). –

+0

@isakSavo Я надеялся использовать список с двумя отдельными интерфейсами ... но судя по комментариям, это не должно быть возможным. :(Благодаря. –

Смежные вопросы