public ArrayView <TOther, TIndex> Cast <TOther>() where TOther : unmanaged { var newExtent = Extent.ComputedCastedExtent( Extent, ElementSize, ArrayView <TOther, TIndex> .ElementSize); return(new ArrayView <TOther, TIndex>( BaseView.Cast <TOther>(), newExtent)); }