C# получить значение словаря из TracePoints при отладке

Каков правильный синтаксис для получения пары ключ-значение словаря при использовании точек трассировки?

Со свойством, подобным следующему

public Dictionary<string, decimal> SomeDictionary { get; set; }

Я пытаюсь установить точку останова с помощью действий метода set для отслеживания всех входящих значений. Я пробовал следующее, но ни один из них не работает.

{value}        'this gives me a count of how many items are in the dictionary

{value.Value}  'throws an exception, 'Value' doesn't exist

{value[Value]} 'the name 'Value' does not exist in the current context

2 ответа

Решение

На основании вашего SomeDictionary:

        public class Example
        {
            public Dictionary<string, decimal> SomeDictionary { get; set; }

            public Example()
            {
                SomeDictionary = new Dictionary<string, decimal>();
                string key = "key";
                SomeDictionary[key] = 10.0M;
            }

        }

        static void Main(string[] args)
        {
            var example = new Example();
            Console.ReadKey();
        }

Если мы поместим точку трассировки в конец конструктора после определения словаря и добавления ключа - действие Tracepoint:

SomeDictionary: {SomeDictionary}; SomeDictionary[key]: {SomeDictionary[key]}

Мы можем проверить словарь - Вывод:

SomeDictionary: Count = 1; SomeDictionary[key]: 10.0

Вы можете ссылаться на словарь, используя

{ map["key1"] }

или используя переменную для доступа к паре ключ-значение.

Другие вопросы по тегам