Oh right, so that said... [] is defined on BitFieldArray and is actually the more relevant use case (Get() only works for compile-time constants, for which one could just access the corresponding BitField directly anyway).

It does not compile to Get() but instead returns a wrapper class (ArrayElement) around BitField functionality, such that "from the outside" it seems as if one directly accessed the BitField.