- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
bool[] Inmask;
....
private void discreteOIForm_Load(object sender, EventArgs e)
{
if (icpI_measure.Connect() && icpO_measure.Connect())
{
Inmask = new bool[1];
Inmask[Convert.ToInt32(0)] = true;
}
}
Да, видел, в жабьем коде, в котором автор (видимо сишник) хотел передать инт по ссылке ;)
Слишком много накладных расходов. Не для того их изобрели.
Посмотрите в исходник AtomicInteger. Операции get и set там - всего лишь тривиальный геттер и сеттер для volatile int. Если пользоваться только ими, никаких накладных расходов не будет. Вспомогательный объект используется только для нетривиальных операций типа incrementAndGet.
Но имхо массив предпочтительнее.
Будто что-то плохое. Часто использую при возврате из замыканий, анонимных классов. int не сойдет, потому что final, а массив - самый раз.
в древние времена, массив из одного элемента, как параметр функции, в жабе был почти официальный способ как эмулировать указатель на указатель. не в курсе как оно там сейчас, но во времена JDK 1.0 я это реально видел.
И поныне часто так пишут. Правда нынче часто удобнее завести женерик-методы для построения ссылки, пары, тройки.
Но раньше так и было:
массив из одного элемента - ссылка.
из двух объектов - пара.
И выше. Кортежи-кортежики. Только кастинг вручную.
Возврат из методов нескольких значений, передача в анонимные классы.
И без статических билдеров не очень удобно с этим хозяйством управляться.