Есть иерархия классов, появилась ситуация в которой не могу придумать нормального решения. (стрелками показано наследование, красным цветом - желаемое, но невозможное )
Классы U, S, A, W используют одну и ту же реализацию функции F
А классы SAI, AAI, WAI другую, но общую между собой. Именно это и не получается реализовать так как нет возможности создать дополнительный класс AI реализовать в нем F и тогда наследоваться от него. Получается что придется просто копировать реализацию F для SAI, AAI, WAI, что есть плохо.
Какой есть способ красиво решить эту проблему??
Спасибо!
Множественное наследование от нескольких классов невозможно. Используйте интерфейс IFunctionF
и два вспомогательных класса F1
и F2
, каждый из которых имеет свою реализацию IFunctionF
. И далее от F1
и F2
наследуйте ваши семейства U,A,S,W
от F1
и SAI, AAI, WAI
от F2
.
public interface F
{
int F();
}
class F1:F
{
public virtual int F()
{
return 2;
}
}
class F2 : F
{
public virtual int F()
{
return 3;
}
}
class S : F1
{
void a()
{
F();
}
}
class AAI : F2
{
void a()
{
F();
}
}
Допустим у меня есть унифицированное окошкоBasicDialogUI
Метод MemberInfoGetCustomAttributes получает список атрибутов члена типа
Есть программкаПри выполнении записи в базу данных вылетает ошибка:
Здравствуйте, программно создаю на форме кнопки в зависимости от того, сколько записей существует в базе данных по заданному запросуПодскажите,...