Если у меня есть объект, который реализует интерфейс, он автоматически сопоставляет методы интерфейса методам класса с тем же именем и сигнатурой по умолчанию. Есть ли способ переопределить это и сопоставить метод интерфейса с методом с той же подписью, но с другим именем? (Это может быть полезно, например, если я реализую два интерфейса, оба из которых имеют метод с тем же именем и подписью, и я хочу иметь возможность делать с ними разные вещи.)Как сопоставить имена интерфейсов с именами разных методов?
2
A
ответ
7
Это действительно возможно , Эта техника называется Method Resolution Clause.
8
Это пример кода ответа Эрвина
type
ISomeInterface = interface
procedure SomeMethod;
end;
IOtherInterface = interface
procedure SomeMethod;
end;
TSomeClass = class(TInterfacedObject, ISomeInterface, IOtherInterface)
public
procedure ISomeInterface.SomeMethod = SomeInterfaceSomeMethod;
procedure IOtherInterface.SomeMethod = OtherInterfaceSomeMethod;
procedure SomeMethod; // TSomeClass.SomeMethod
procedure SomeInterfaceSomeMethod; // ISomeInterface.SomeMethod
procedure OtherInterfaceSomeMethod; // IOtherInterface.SomeMethod
end;
Смежные вопросы
- 1. Как сопоставить модель с именами?
- 2. Код C# для обработки разных классов с одинаковыми именами методов
- 3. Как сопоставить записи func_closure с именами переменных?
- 4. Как сопоставить значения с именами файлов?
- 5. Использование интерфейсов с сигнатурами методов
- 6. Как сопоставить информацию из разных методов в C#
- 7. Как сопоставить имена полей JSON для разных имен полей объектов?
- 8. реализация интерфейса с разными именами методов
- 9. Использовать имена методов интерфейса
- 10. Как выглядят окна «имена интерфейсов»?
- 11. затмения имена методов с
- 12. WCF Несколько контрактов с именами повторяющихся методов
- 13. Ruby: Обращайтесь с произвольными именами методов
- 14. Как сопоставить имена переменных с индексами массива
- 15. Как сопоставить имена столбцов с EF 4.3.1?
- 16. Как сопоставить имена столбцов с их сокращенными номерами
- 17. Эффективные имена методов для формул?
- 18. Как сопоставить объекты с похожими именами в разных документах с тем же полем ElasticSearch/Kibana?
- 19. Реализация двух интерфейсов с одинаковыми именами методов, но с разными сигнатурами
- 20. извлечение общих методов из интерфейсов
- 21. Реализация нескольких интерфейсов с одинаковыми сигнатурами методов
- 22. Имена безопасности с именами с дефисом/черточкой
- 23. Реализация нескольких интерфейсов с использованием общих методов
- 24. Предсказать имена интерфейсов, начиная с Ubuntu 15.10
- 25. Дизайн-шаблон для разных интерфейсов
- 26. Изменить имена методов подкласса
- 27. Имена методов в Swift
- 28. рубин имена методов
- 29. Переопределение методов с разными именами переменных
- 30. Как управлять именами методов в виде строк?
Спасибо! Я знал, что где-то видел что-то подобное, но я не мог вспомнить, как это было сделано. –