Ответ 1
Короткий ответ:
Вам нужно будет создать новый метод с новой подписью и пометить текущий как устаревший.
Более длинный ответ
То, что вы хотите избежать любой ценой, - это перерыв кода! Затем, особенно в корпоративной структуре, вы хотите рекламировать, что ваш метод больше не поддерживается, например, но вы не хотите нести ответственность за зависящие решения от сбоев из-за решения архитектуры или дизайна или вашей стороны, не так ли?
Класс ObsoleteAttribute
сделает трюк для вас.
Как только член класса будет отмечен как устаревший, на стороне клиента будут подняты предупреждения, те, кто использует вашу инфраструктуру, чтобы продолжить этот путь или даже один из ваших коллег по тому же проекту.
public class MyClass {
[Obsolete("This method should no longer be used, please use MyNewMethod() instead.")]
public void MyMethod(string name, long phoneNumber, long faxNumber) {
}
public void MyNewMethod(string name, long phoneNumber, long faxNumber, string email) {
}
}
Это позволит рекламировать, что MyMethod
больше не поддерживается на всех ваших пользователях кода.
Через определенный промежуток времени, достаточно разумный, чтобы каждый мог изменить свой код, вы можете сообщить этому атрибуту сообщение об ошибке, когда ваш устаревший метод все еще используется в коде.
public class MyClass {
[Obsolete("This method should no longer be used, please use MyNewMethod() instead.", true)]
public void MyMethod(string name, long phoneNumber, long faxNumber) {
}
public void MyNewMethod(string name, long phoneNumber, long faxNumber, string email) {
}
}
Установив второй конструктор класса ObsoleteAttribute
на true
, вы можете компилировать рекламу использования этого метода в качестве ошибки.
Через некоторое время вы можете полностью удалить свой метод из своего кода, чтобы немного почистить его. Это часть методов рефакторинга, поощряемых методологией Agile Software Development.
Помогает ли это?