Краткий ответ:
Вам потребуется создать новый nethod с новой подписью и пометить текущий как устаревший.
Более длинный ответ
То, чего вы хотите избежать любой ценой, - это разрыв кода!Затем, в частности, в рамках компании, вы хотите объявить, что ваш метод больше не будет поддерживаться, например, но вы не хотите нести ответственность за зависание различных решений из-за архитектуры или проектного решения или вашей стороны, верно?
Класс 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
, вы сообщаете компилятору о том, как использовать этот метод в качествеrror.
Через некоторое время вы можете полностью удалить свой метод из кода, чтобы немного его очистить.Это часть методов рефакторинга, поддерживаемых методологией Agile Software Development.
Помогает ли это?