Информация об изменениях

Сообщение Re[3]: Явная реализация интерфейса и generic метод от 31.07.2020 8:41

Изменено 31.07.2020 14:25 Serginio1

Re[3]: Явная реализация интерфейса и generic метод
Здравствуйте, igor-booch, Вы писали:

S>>попробуй

S>> public static void Do<TClass>(TClass @object) where TClass : IBase
S>> {
S>>switch(@object)
S>>{
S>> case IDerived2 d2:@d2.Do();break;
S>> case IDerived1 d1: d1.Do();break;
S>> default @object.Do();break;
S>> }


IB>Не рабоатет

IB>

IB>IBase
IB>IDerived1
IB>IDerived2
IB>IDerived2
IB>IDerived2
IB>IDerived2


А ну да нужно сравнивать тип
if (typeof(TClass)==typeof(IDerived2))
{
(object as IDerived2).Do();
}
else if (typeof(TClass)==typeof(IDerived1))
{
(object as IDerived1).Do();
}
Re[3]: Явная реализация интерфейса и generic метод
Здравствуйте, igor-booch, Вы писали:

S>>попробуй

S>> public static void Do<TClass>(TClass @object) where TClass : IBase
S>> {
S>>switch(@object)
S>>{
S>> case IDerived2 d2:@d2.Do();break;
S>> case IDerived1 d1: d1.Do();break;
S>> default @object.Do();break;
S>> }


IB>Не рабоатет

IB>

IB>IBase
IB>IDerived1
IB>IDerived2
IB>IDerived2
IB>IDerived2
IB>IDerived2


А ну да нужно сравнивать тип
if (typeof(TClass)==typeof(IDerived2))
{
(object as IDerived2).Do();
}
else if (typeof(TClass)==typeof(IDerived1))
{
(object as IDerived1).Do();
}