public virtual Vector3 this[ int index ] { get { ValidateIndex( index ); // throws return m_array[ index ]; } set { ValidateIndex( index ); // throws ++m_version; m_array[ index ] = value; } }