/// <summary> /// Creates a <see cref="Cell"/>. /// </summary> /// <param name="startColumnIndex">The index of the <see cref="Cell"/>'s start column.</param> /// <param name="endColumnIndex">The index of the <see cref="Cell"/>'s end column.</param> /// <param name="startRowIndex">The index of the <see cref="Cell"/>'s start row.</param> /// <param name="endRowIndex">The index of the <see cref="Cell"/>'s end row.</param> /// <param name="startOffset">The offset of the start of the <see cref="Cell"/> from the /// leftmost character of its containing table.</param> /// <param name="endOffset">The offset of the end of the <see cref="Cell"/> from the /// leftmost character of its containing table.</param> /// <param name="lineIndex">The index of the line within the <see cref="Cell"/>'s containing markdown document /// that the <see cref="Cell"/> begins at.</param> /// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="startColumnIndex"/> is negative.</exception> /// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="endColumnIndex"/> is less than <paramref name="startColumnIndex"/>.</exception> /// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="startRowIndex"/> is negative.</exception> /// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="endRowIndex"/> is less than <paramref name="startRowIndex"/>.</exception> /// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="startOffset"/> is negative.</exception> /// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="endOffset"/> is not greater than <paramref name="startOffset"/>.</exception> /// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="lineIndex"/> is negative.</exception> public Cell(int startColumnIndex, int endColumnIndex, int startRowIndex, int endRowIndex, int startOffset, int endOffset, int lineIndex) { if (startColumnIndex < 0) { throw new ArgumentOutOfRangeException(string.Format(Strings.ArgumentOutOfRangeException_Shared_ValueCannotBeNegative, startColumnIndex), nameof(startColumnIndex)); } if (endColumnIndex < startColumnIndex) { throw new ArgumentOutOfRangeException(string.Format(Strings.ArgumentOutOfRangeException_Shared_ValueMustNotBeLessThanOtherValue, endColumnIndex, nameof(startColumnIndex), startColumnIndex), nameof(endColumnIndex)); } if (startRowIndex < 0) { throw new ArgumentOutOfRangeException(string.Format(Strings.ArgumentOutOfRangeException_Shared_ValueCannotBeNegative, startRowIndex), nameof(startRowIndex)); } if (endRowIndex < startRowIndex) { throw new ArgumentOutOfRangeException(string.Format(Strings.ArgumentOutOfRangeException_Shared_ValueMustNotBeLessThanOtherValue, endRowIndex, nameof(startRowIndex), startRowIndex), nameof(endRowIndex)); } if (lineIndex < 0) { throw new ArgumentOutOfRangeException(string.Format(Strings.ArgumentOutOfRangeException_Shared_ValueCannotBeNegative, lineIndex), nameof(lineIndex)); } if (startOffset < 0) { throw new ArgumentOutOfRangeException(string.Format(Strings.ArgumentOutOfRangeException_Shared_ValueCannotBeNegative, startOffset), nameof(startOffset)); } if (endOffset <= startOffset) { throw new ArgumentOutOfRangeException(string.Format(Strings.ArgumentOutOfRangeException_Shared_ValueMustBeGreaterThanOtherValue, endOffset, nameof(startOffset), startOffset), nameof(endOffset)); } StartColumnIndex = startColumnIndex; EndColumnIndex = endColumnIndex; StartRowIndex = startRowIndex; EndRowIndex = endRowIndex; StartOffset = startOffset; EndOffset = endOffset; LineIndex = lineIndex; Lines = new StringLineGroup(4); IsOpen = true; }