Сообщение 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>
А ну да нужно сравнивать тип
if (typeof(TClass)==typeof(IDerived2))
{
(object as IDerived2).Do();
}
else if (typeof(TClass)==typeof(IDerived1))
{
(object as IDerived1).Do();
}
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>
А ну да нужно сравнивать тип
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();
}