Если это не сломано, не исправляйте это. Конечно, если у вас есть уверенность в своих модульных тестах, вы можете испытать их, но вам не следует менять код произвольно «просто потому что».
Конечно, в некоторых случаях упрощение кода является веской причиной для внесения изменений, но даже такая невинная вещь, как переключение на автоматически реализуемое свойство, может нарушить код, который делает предположения и использует отражение для непосредственного обновления полей. Или это может нарушить сериализацию.
Изменение на «var» может фактически дать вам другой (более конкретный) тип, который может вызвать выбор другой перегрузки метода и т. Д.
Итак, еще раз; все зависит от вашей уверенности в юнит-тестах.
Другие соображения:
- Остальная команда еще понимает новый синтаксис?
- требует ли ваш проект поддержки C # 2.0 (например, некоторые проекты с открытым исходным кодом могут захотеть сохранить совместимость с C # 2.0).
Если ни один из них не является проблемой, вы должны быть в порядке, чтобы использовать новые функции в новом коде ... просто будьте немного осторожными, прежде чем нажать "обновить все" на старом коде ...
Вот тривиальный пример "var" как критического изменения:
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]
...