BitVector32
does not use the indexer syntax for index, it uses it as a bitmask. For example, if you were to do this:
lVector[7] = true;
ToString
would give 0...000111
.
The decompiled code for the getter looks like this:
return ((long) this.data & (long) bit) == (long) (uint) bit;
So what ends up happening is this:
(0 & 0) == 0
Which of course, is true.