public override Line this[int i] { get { if (base.lines[i] != null) return lines[i]; else LoadLineFromSourceFile(i); return lines[i]; } set { throw new NotImplementedException(); } }