При расширении классов я считаю очень наглядным использование ключевого слова base (MyBase в VB) при доступе к методам базового класса. И ключевое слово this (Me в VB) при доступе к функциям в классе, расширяющем базовый класс. Это также относится к «плоской» структуре без наследования.
Мне легче это прочитать:
public class World
{
public String baseName = "World";
}
public class Hello : World
{
public String thisName = "Hello";
public String GetNames()
{
return this.thisName + " " + base.baseName;
}
}
Чем это:
...
public String GetNames()
{
return thisName + " " + baseName;
}
...
Теперь у меня вопрос: можно ли принудительно использовать this и base во время компиляции в Visual Studio / C#, чтобы компилятор выдавал ошибку или предупреждение, если вы не используете эти ключевые слова в своем коде?





Взгляните на StyleCop.
http://code.msdn.microsoft.com/sourceanalysis
Там есть некоторые правила, которые должны делать то, что вы хотите. Вы можете настроить его так, чтобы любые нарушения стиля отображались как предупреждения или ошибки.
Похоже, это не работает с Visual Studio Team System 2008. Установка работает нормально, но VS вылетает, когда я пытаюсь использовать плагин. Это чистая установка VS, без установленных надстроек.
Мы используем StyleCop 4.3 с Visual Studio Team System 2008 как в простом, так и в (только что обновленном) вариантах SP1, и он отлично работает, поэтому принципиальной несовместимости нет (хотя, к сожалению, это не помогает с вашей проблемой, просто сообщая вам об этом. может работать нормально).
Вы также можете проверить Аудитор кода SSW
К сожалению, я не знаю, как добиться этого в компиляторе.
К вашему сведению, по умолчанию StyleCop обеспечивает это (в качестве альтернативы некоторому соглашению об именах данных-членов) и препятствует излишним базовым спецификациям.