Я хотел бы переопределить метод класса без наследования базового класса, потому что потребуется много времени и изменений и, следовательно, все больше и больше тестов. Это как это:Измените метод класса C# во время выполнения
class TestClass{
public void initialMethod(){
...
}
}
И где-то на код, я хотел бы сделать что-то вроде этого:
public testMethod()
{
return;
}
test(){
changeMethod(TestClass.initialMethod, testMethod);
}
И эта функция changeMethod бы переопределить TestClass initialMethod так, что он назвал бы TestMethod вместо.
Наследование и переопределение метода с использованием обычных методов не является вариантом, так как этот класс A является графическим компонентом, и его удаление (и изменение) приведет к разрыву большого количества кода.
Редактирование: у нас нет базового кода для TestClass, поэтому нет возможности изменить код, определяющий initialMethod в качестве делегата.
Редактировать 2: Поскольку это графический компонент, дизайнер добавил много кода автоматически. Если бы я наследовал этот код, мне пришлось бы заменить весь код, добавленный дизайнером. Вот почему я не хотел бы заменять этот компонент.
ли новый метод можно назвать новым кодом или старый код? Не уверен, что я буду следовать вашему прецеденту. –
Второй вопрос Петра. Звучит так, как будто вы говорите о тестовом коде, но я не понимаю вашего комментария о замене всего кода, добавленного дизайнером. –
Фрагменты кода сбивают с толку. Когда вы говорите TestClass, вы имеете в виду класс ', который содержит тесты' или класс 'для тестирования'? – Gishu