Вот нелогич- использования:BitArray высокая производительность Или & А & Xor
bitarray = bitarray.And(mask);
И вопрос в том, насколько эффективно она по сравнению с той же операции на int[]
с копией того же массива, но не создавая еще один и возвращение он (что стоит время и создает бесполезный мусор) Я уже знаю, какой тип BitArray имеет частный непубличный член m_array
, и это просто int[]
. Есть ли какой-то метод для выполнения этих операций без создания новых экземпляров? Например, как это:
bitarray.And(mask);
И проще, я хочу, чтобы закрепить эту операцию
bitarray |= mask;
И я знаю, что экземпляр BitArray изменилось внутри, не создавая новый экземпляр BitArray
.
Я знаю, я могу сделать это с отражением, но я не думаю, что это будет быстрее ... Или есть какой-то лучший подход, чем создание моего собственного BitArray
?
О, я знаю это. Эта операция возвращает тот же экземпляр ... немного странно, хотя ... с какой целью? – eocron
@eocron: шаблон известен как «свободный интерфейс», что означает, что он позволяет вам цепочки вызовов, поэтому вы можете иметь. И (mymask) .Or (otherMask) .Xor (thirdMask); что может быть весьма удобным. Вторая причина - это, скорее всего, производительность: если бы каждый раз он создавал новый битаррейт, это было бы так медленно. –