Ну, это отчасти зависит от того, насколько вы доверяете функции «удалить и отсортировать». Насколько я знаю, порядок не имеет значения - но какие директивы присутствуют может иметь значение.
Например, предположим, у вас был этот метод расширения:
public static int Count<T>(this List<T> source)
{
return 0;
}
Если бы это был тип в пространстве имен MyExtensions
, и исходный код был бы таким:
using MyExtensions;
using System.Linq;
...
List<string> list = new List<string>();
int x = list.Count();
тогда удаление первой директивы using не будет иметь никакого значения для видимых выходных данных компилятора (то есть без ошибок, без предупреждений), но изменит то, какой метод расширения был вызван.
Теперь я лично верю, что «удаление и сортировка» на самом деле не приведет к такому изменению поведения, и для начала вам понадобится довольно хрупкий код, но я просто подумал, что упомяну, что «он все еще собирается потом» на самом деле недостаточно, чтобы гарантировать, что ваши тесты будут работать.
Лично я бы, наверное, все равно снова провел тесты, но в равной степени я был бы достаточно счастлив, если бы не было необходимости. Как упоминает Finglas, если у вас есть система непрерывной сборки, предупреждающая вас о любых изменениях, последствия того, что иногда вы ошибаетесь, вероятно, не слишком катастрофичны. Конечно, если у вас есть тысячи разработчиков, которые будут испытывать неудобства из-за регистрации поврежденного кода, это другое дело.