Получение значения переменной класса переданного по ссылке
В Recipients есть метод, который вызван из SENDER и обращается к переменной класса SENDER таким образом: mainSender.SENDER.pathToSpace. Но я получаю сообщение, что ссылка на объект не указывает на экземпляр класса. Подскажите, как сделать правильно?
MAIN
private void mainSender_Load(object sender, EventArgs e)
{
settings = new settings();
log = new log(this);
mysql = new mysql(this);
Senders = new Senders(this);
Recipients = new Recipients(this);
SENDER = new sender(this);
}
Recipients
internal Recipients(mainServer mainServerIn)
{
mainServer = mainServerIn;
}
internal List<string> getFromWindows()
{
List<string> result = new List<string>();
result = Directory.GetDirectories(mainSender.SENDER.pathToSpace + @"\").Select(directoryInfo => new DirectoryInfo(directoryInfo).Name).ToList();
return result;
}
SENDER
internal sender(mainSender mainSenderIn)
{
mainSender = mainSenderIn;
pathToSpace = mainSender.settings.senderPathToSpace;
syncWindowsMysqlRicipients();
}
internal void syncWindowsMysqlRicipients()
{
List<string> listFromWindows = mainSender.Recipients.getFromWindows();
}
В методе syncWindowsMysqlRicipients() я получаю ошибку
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
Уберите
syncWindowsMysqlRicipients();
из конструктора sender.
В этом методе происходит обращение к mainSender.SENDER до того, как левой части в
SENDER = new sender(this);
присваивается значение.