Почему CodeRush непоследователен в определении того, какие псевдонимы пространства имен необходимы?
У меня было это:
using Excel = Microsoft.Office.Interop.Excel;
. . .
private Excel.Application _xlApp;
private Excel.Workbook _xlBook;
private Excel.Sheets _xlSheets;
private Excel.Worksheet _xlSheet;
CodeRush сказал "Excel". для _xlBook, _xlSheets и _xlSheet (но не _xlApp) было излишним ("Спецификатор избыточного типа"), поэтому я удалил их:
private Excel.Application _xlApp;
private Workbook _xlBook;
private Sheets _xlSheets;
private Worksheet _xlSheet;
Затем, когда я пытался скомпилировать, я получил сообщение об ошибке типа:
Не удалось найти имя типа или пространства имен "Листы" (отсутствует директива using или ссылка на сборку?)
Таким образом, следуя рекомендации CodeRush, сборка была нарушена (было легко вернуться, конечно, в состояние компиляции), но для меня более интересно то, почему он также не рекомендовал удалить "Excel". из "Excel.Application _xlApp"
Почему он признает, что "Excel". префикс необходим для приложения, но не для рабочей книги, листов и рабочей таблицы?
ОБНОВИТЬ
FWIW, другие рекомендованные изменения CodeRush также сломали мою сборку (отмечено ниже); Кроме того, он добавил акры пустых мест в различные места в моем коде, когда я запустил "Очистку кода" или какую-то подобную команду. Я удалил CodeRush. За мои деньги Resharper является четким и решительным преимуществом при сравнении двух инструментов.
Другой случай (без каламбура), когда CodeRush не понимал, когда пространству имен нужен префикс, был с этим:
namespace RoboReporter.DeliveryPerformance
{
public class DeliveryPerformance
... он посоветовал удалить "RoboReporter". вот так:
namespace DeliveryPerformance
{
public class DeliveryPerformance
... но когда я это сделал, он подумал, что ссылка на DeliveryPerformance (в частности, "List