Если он не сломался, не исправляйте его. Конечно, если у вас есть уверенность в ваших модульных тестах, вы можете дать ему завихрение, но на самом деле вы не должны случайно менять код «просто потому, что».
Конечно, в некоторых случаях упрощающий код является веской причиной для внесения изменений - но даже что-то столь же невинное, как и переход к автоматически реализованному свойству, может сломать код, который делает предположения и использует отражение, чтобы обновлять поля напрямую. Или это может сломать сериализацию.
Переход к «вар» на самом деле может дать вам (более специфичное) тип другого, что может вызвать различные перегрузки метод выбран, и т.д.
Так снова; это сводится к вашей уверенности в модульных тестах.
Другие соображения:
- делает остальная часть команды понимают новый синтаксис еще?
- ваш проект должен поддерживать C# 2.0 (например, некоторые проекты с открытым исходным кодом могут захотеть сохранить совместимость с C# 2.0).
Если ни один из них вопрос, вы должны быть в порядке, чтобы использовать новые возможности в новом коде ... просто быть немного осторожность, прежде чем нажать «обновить все» на старом коде ...
Вот тривиальный пример «вар» в качестве отключающего изменения:
static void Main() {
using (TextReader reader = File.OpenText("foo.bar")) { // [HERE]
Write(reader);
}
}
static void Write(TextReader reader) {
Console.Write(reader.ReadToEnd());
}
static void Write(StreamReader reader) {
throw new NotImplementedException();
}
Теперь перейти к var reader
на линии, отмеченной [HERE]
...
Фактически, переключение на var может быть изменением; см. мой ответ, почему – 2008-11-03 14:25:17