Страницы

Поиск по вопросам

суббота, 6 июля 2019 г.

Как изменять принятую в конструкторе переменную в любом месте класса

private class BtleScanCallback : ScanCallback { public List scan_result = new List();
public BtleScanCallback(ref List scanResults) { //scan_result = scanResults //надо, чтобы изменяя scan_result, менялась и scanResults }
public void f(ScanResult result) { scan_result.Add(result); //и в scanResults должен добавиться элемент "result" } }


Ответ

В методе public void f(ScanResult result) scanResults недоступен. Его область видимости заканчивается ещё в конструкторе. Поэтому в других методах класса получить доступ к данной переменной невозможно, разве только к scan_result
Но, если в методе Main при создании объекта данного класса в конструктор прокидывалась переменная, скажем _sR, то, после совершения каких-либо преобразований с переменной scan_result внутри класса, в методе Main переменная _sR также преобразуется. Достигается это благодаря передаче в конструктор аргумента по ссылке.

Комментариев нет:

Отправить комментарий