Это одна из моих любимых возможностей по улучшению процесса дебага. Рассмотрим следующий пример. Пусть есть объект Product:
public class Product { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual string Description { get; set; } public virtual double Price { get; set; } }
Если навести на него в debug режиме, то мы увидим следующее:
C одной стороны все нормально, если навести на плюсик, то получим полную информацию:
А теперь посмотрим как будет выглядеть список этих объектов:
Соответственно чтобы найти в этом списке продукт с Id = 5 приходится последовательно разворачивать каждый (особенно если список не отсортирован).
Для удобочитаемости объекта в дебаге можно воспользоваться атрибутом DebuggerDisplay. Он позволяет изменять вид отображения объекта. Например если добавить следующий атрибут к классу Product:
[DebuggerDisplay("Id = {Id}, Name= {Name}, Price = {Price}")] public class Product //... далее описание класса
В фигурных скобках указываются интересующие нас свойства. Результат:
Этой краткой информации вполне достаточно чтобы понять что находится в коллекции и найти там нужный элемент.
No comments:
Post a Comment