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"] }
или используя переменную для доступа к паре ключ-значение.