powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Как реализовать полиморфизм (интерфейс), если методы имеют разное кол-во параметров ?
6 сообщений из 31, страница 2 из 2
Как реализовать полиморфизм (интерфейс), если методы имеют разное кол-во параметров ?
    #38263967
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АаархиПривет.
Вопрос такой. Есть иерархия классов. Используем язык C#.
Но проблема в том, что основной метод, вокруг которого фактически и крутится класс, в разных классах имеет разное количество параметров.
Дело вот в чем. Есть класс. Он в себе хранит некие данные. И динамически-периодически, у него нужно дергать метод (который вот и нужно придумать как описать), куда передавать самые последние данные.
Проблема усложняется тем, что в иерархии разные наследниики имеют разное кол-во параметров в этой самой функции.
PS. Иерархия все же нужна. Т.к. по сути, все классы там делают одну работу. Просто часть функций виртуальные, и каждый класс через них и делает свою уникальную обработку.
Мне нужно сделать некий интерфейс, описывающий работу этой иерархии.
Как быть ?

Лично я бы сделал бы ТУПО!
1) Есть один метод, который дергается без параметров.
2) Перед тем как дергать метод нужные параметры заполнил бы ч/з свойства.

<:o)
...
Рейтинг: 0 / 0
Как реализовать полиморфизм (интерфейс), если методы имеют разное кол-во параметров ?
    #38264143
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АаархиТ.е. сделать в методе всего лишь один входной параметр, принимающий на вход абстрактный класс- и для каждого класса в иерархии, создать класс наследник этого "eventargs" хранящего специфичные данные.
Но что-то не очень мне нравится эта идея.Правильнее всего.
...
Рейтинг: 0 / 0
Как реализовать полиморфизм (интерфейс), если методы имеют разное кол-во параметров ?
    #38264182
Inkelyad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgulЛично я бы сделал бы ТУПО!
1) Есть один метод, который дергается без параметров.
2) Перед тем как дергать метод нужные параметры заполнил бы ч/з свойства.

Те где-то так? (сейчас меня будут бить)
Код: plaintext
1.
2.
3.
4.
5.
constructor = Class::GetConstructor();
    constructor.addParam1(...);
    constructor.addParam2(...);
....
object = constructor.create();
...
Рейтинг: 0 / 0
Как реализовать полиморфизм (интерфейс), если методы имеют разное кол-во параметров ?
    #38265521
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inkelyadmad_nazgulЛично я бы сделал бы ТУПО!
1) Есть один метод, который дергается без параметров.
2) Перед тем как дергать метод нужные параметры заполнил бы ч/з свойства.

Те где-то так? (сейчас меня будут бить)
Код: plaintext
1.
2.
3.
4.
5.
constructor = Class::GetConstructor();
    constructor.addParam1(...);
    constructor.addParam2(...);
....
object = constructor.create();



Нет, еще тупее!

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
...
 MyClass myClass = new MyClass();
 myClass.setParam1(...);
 myClass.setParam2(...);
 ...
 myClass.setParamN(...);
 ...
 myClass.myMethod(); 



Ну или

Код: c#
1.
2.
3.
4.
...
 MyClass myClass = new MyClass(param1, param2,...,paramN);
 ...
 myClass.myMethod(); 



<:o)
...
Рейтинг: 0 / 0
Как реализовать полиморфизм (интерфейс), если методы имеют разное кол-во параметров ?
    #38290541
ЧВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если говорить конкретно про c#, то для работы с динамическим числом параметров в методе используется ключевое слово params , пример:
Код: c#
1.
public void SomeMethod(params object[] listOfParams)


Вызываться этот метод может так:
Код: c#
1.
SomeMethod(1,"абв",new MyClass());


или так:
Код: c#
1.
SomeMethod(AutoSizeMode.GrowOnly);


и т.п.
...
Рейтинг: 0 / 0
Как реализовать полиморфизм (интерфейс), если методы имеют разное кол-во параметров ?
    #38293887
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ааархи,



В качестве параметра передать собственный класс, поля которого уже будут разбираться в конкретном наследнике. И ответ тоже собственным классом, что нить вроде:
-sensorRequest
-sensorResponse
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Как реализовать полиморфизм (интерфейс), если методы имеют разное кол-во параметров ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]