Как вызвать функцию в методе в зависимости от типа модели
Есть основной класс где много функций и есть 2-3 типа модели которые определяться при инициализации основного класса(каждый тип модели имеет свой класс с одинаковым названием функций, но с разной реализацией). В каждой функции основного класса должна быть проверка на тип модели и в зависимости от типа модели должна вызываться функция
Main class
public class TelnetConnection
{
static int TAIMAUT = 7000;
S_Switch dataSwitch;
public TelnetConnection(string ip_device, string typeModel,string version, int port)
{
dataSwitch.ip_device = ip_device;
dataSwitch.typeModel = identifyDevice(typeModel);
dataSwitch.version = version;
dataSwitch.port = port;
}
TypeModel identifyDevice(string typeModel) {
if(typeModel == "Eltex")
{
return TypeModel.Eltex;
}
else if (typeModel == "Qtech")
{
return TypeModel.Qtech;
}
return TypeModel.Null;
}
Много функций класса...
Ответы (1 шт):
Автор решения: Andrei
→ Ссылка
Для этого можно использовать один из основных принципов ООП - Полиморфизм. Из документации MSDN:
Вы можете использовать полиморфизм выполнив 2 простых шага:
- Создать иерархию классов, состоящую из базового класса и дочерних, наследуемые от базового.
- Использовать виртуальный метод в базовом классе и модификатор 'override' в дочернем классе, чтобы изменить реализацию базового класса
Если реализация для каждой модели своя и нет необходимости создавать объект базового класса, можно базовый класс сделать абстрактным или использовать интерфейс.