В текстовом поле «Выражение» отображается полное имя любого узла, который вы выбрали в дереве. Полное имя - это выражение, которое нужно оценить, если вы хотите увидеть только выбранное вами значение.
List<T>
не является массивом и на самом деле не имеет члена с именем «[0]». Если вы посмотрите на «Raw View», вы увидите фактические элементы реализации List<T>
. Большинство людей не заботятся о реализации и хотят видеть только элементы в списке. Из-за этого List<T>
имеет DebuggerTypeProxy. Тип прокси позволяет настраивать представление объекта в отладчике. Для List<T>
прокси-сервер типа Mscorlib_CollectionDebugView
. Чтобы непосредственно оценить элемент 0, вам нужно создать экземпляр прокси-типа, а затем получить значение элемента 0 (TypeProxy.Items[0]
).
Да, но список реализует «this [int]», поэтому «p.rg [0]» является допустимым выражением для этого элемента. Я понимаю: «Большинство людей не заботятся о реализации», но кто, по вашему мнению, заботится о внутренних реализациях отладчика, таких как «DebuggerTypeProxy» ?. если вы идете на длину, чтобы скрыть внутренние элементы в дереве, не можете ли вы перейти к дополнительным, но и спрятать прокси в выражении combo? –
Spongman
@Spongman, Вы правы, что отладчик может использовать «это []» в теории. Проблема заключается в том, что «этот []» является синтаксическим сахаром C#. Он фактически сопоставляется с индексом, сгенерированным компилятором, который является членом списка. Отладчик архивирован, чтобы быть агностиком языка, поэтому использование этого «] было бы немного взломанным. С точки зрения скрытия отвратительного выражения, я согласен с тем, что уродливо видеть некоторые эти сгенерированные выражения. Тем не менее, как разработчик мне нравится иметь возможность принять выражение и внести изменения в него, прежде чем оценивать его снова. –
, в котором используется прецедент полезно для просмотра DebuggerTypeProxies? единственное, о чем я могу думать, это то, что вы разрабатываете эти прокси или сам отладчик. для других 99,99% раз это шум. я понимаю, что существующий дизайн затрудняет их скрыть, но я не думаю, что это действительно оправдание. – Spongman