public String substring(int start, int end) {if (start >= 0 && start <= end && end <= count) {if (start == end) {return "";}return new String(value, start, end - start);}throw startEndAndLength(start, end);}

public virtual string substring(int start, int end){if (start >= 0 && start <= end && end <= count){if (start == end){return string.Empty;}return new string(value, start, end - start);}throw startEndAndLength(start, end);}
