c# словарь ObjectReference не установлен - PullRequest
0 голосов
/ 28 марта 2020

Почему этот код возвращает NullReferenceExeption в первом операторе if? Как это должно быть исправлено?

void Main()
{
    addOrIncrement(new KeyValuePair<string,long>("1",1));
    addOrIncrement(new KeyValuePair<string,long>("1",1));
}

public Dictionary<string, long> Result { get; set; }

public void addOrIncrement(KeyValuePair<string,long> pair){
    if(Result.ContainsKey(pair.Key))
    {
        Result[pair.Key] += pair.Value;
    } else {
        Result.Add(pair.Key, pair.Value);
    }
}

Ответы [ 2 ]

2 голосов
/ 28 марта 2020

Result никогда не инициализируется, поэтому это null

public Dictionary<string, long> Result { get; set; } = new Dictionary<string, long>();

Нужно сделать трюк

0 голосов
/ 28 марта 2020

Моя голова не работала сегодня.

Result не было инициализировано.

Сначала необходимо добавить Result = new Dictionary<string,long>();.

...