Поэтому он теоретически может быть отрицательным, хотя конечно в C# запись x[-1] лишена всякого смысла.
Не лишена.
Во-первых — можно перегрузить индексатор в вашем классе и корректно обрабатывать в нем отрицательные индексы.
Во-вторых, в C# массивы могут индексироваться не только с 0:
var x = (int[,])Array.CreateInstance(typeof(int), new[] { 42, 42 }, new[] { -1, 2 });
x[-1,3] = 1234;
На самом деле избыток информации так же плох для новичка, как и недостаток. Без прокаченных скилов по фильтрации информации бывает непросто отделить полезную от устаревшей, неверной, вредной,…
По.Хабр
Не лишена.
Во-первых — можно перегрузить индексатор в вашем классе и корректно обрабатывать в нем отрицательные индексы.
Во-вторых, в C# массивы могут индексироваться не только с 0:
А нужно запретить такое объявление класса?
Или такое использование?
А как быть с таким использованием?