Противоположность событиям и делегатам? - PullRequest
0 голосов
/ 11 февраля 2020

Это может звучать странно, но я просто экспериментирую с мыслью об этом. Мне было интересно узнать о подписке функций на разные классы. Итак, у меня есть базовое или статическое местоположение, где хранится мой метод, и, не полагаясь на наследование, могу ли я подписать эту функцию на объект?

Например: у класса Action есть класс метода SendKeys. У меня есть три объекта: Textbox, Button и Textarea. Реально я не хочу, чтобы у них всех был доступ к функции SendKeys, только Textbox и Textarea. Но я также не хочу копировать и вставлять код SendKeys снова и снова.

Я мог бы создать класс stati c, который будет принимать данные, и два объекта будут вызывать этот класс stati c, но это просто кажется дополнительной работой, и я все равно буду создавать эту функцию, чтобы вызовите внешнюю функцию.

Лучшее решение, которое у меня есть, - просто скопировать код вставки. но мне было интересно, могу ли я подписаться на определенные c функции. Это как противоположность тому, что может сделать мероприятие и делегат правильно? Потому что для подписки требуется код в классе подписчика. Я вроде думаю, что хочу частичные занятия? Я не уверена. Мысли?

Более глубокое погружение в проблему: у меня есть несколько различных элементов для работы, вот некоторые основные c, они идут глубже, если принять во внимание пользовательские элементы: Кнопка Текстовое поле Textarea MultiSelect SingleSelect RadioButtons Флажки MenuItems PasswordTextboxes ET C

Каждый из них будет иметь свои собственные действия, которые могут быть применены. Например, все они будут иметь одинаковые свойства, такие как GetAttribute или GetCssValue, но я не хочу отправлять ключи в флажок, поэтому я не хочу иметь возможность использовать эту функцию при создании наследования. НО, я хочу, чтобы другие объекты имели эти функции. Код длинный и куча копирующего кода ужасна. Я надеялся, что смогу подписать функции на объекты. Поэтому я могу сказать что-то вроде Actions.Click (Textbox) или Textbox.Click или мы, но я не могу сделать Actions.SendKeys (button, "fdsaf") или Button.SendKeys ("fdsaf")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...