У меня есть класс Main
, в котором я определяю экземпляр другого класса:
namespace testRun
{
class Main
{
/// Initialize object to contain various project data
public static CurrentState currentState = new CurrentState();
...
public void Event1(object sender, Args e)
{
ProcessClear();
}
public static void ProcessClear()
{
currentState.quantityDictionary.Clear();
}
}
И класс CurrentState
выглядит следующим образом:
namespace testrun
{
public class CurrentState : INotifyPropertyChanged
{
/// Constructor
public CurrentState() { }
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string property)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property));
}
private Dictionary<string, double> quantityDictionary;
private Dictionary<string, double> QuantityDictionary
{
get { return quantityDictionary; }
set
{
quantityDictionary = value;
OnPropertyChanged("QuantityDictionary");
}
}
}
}
Если я установить quantityDictionary
как Publi c, я получаю ошибку "Объект не установлен в качестве экземпляра объекта" в строке currentState.quantityDictionary.Clear();
Я думаю, что из-за грани quantityDictionary
не инициализирован должным образом, но я не уверен, как именно это сделать правильно или нужно ли это делать в самом конструкторе или где-то еще. Немного запутался в этом ...
Может кто-нибудь помочь мне привести это в порядок? Спасибо
РЕДАКТИРОВАТЬ:
Я установил для поля quantityDictionary
значение Личное , но если оно не Publi c тогда я получаю CurrentState.quantityDictionary is inaccessible due to its protection level
в классе Main
на линии currentState.quantityDictionary.Clear();