Я деякий час спостерігав, що програмісти на C #, як правило, використовують int скрізь і рідко вдаються до uint. Але я ніколи не знайшов задовільної відповіді, чому.
Якщо ваша мета - взаємодія, uint не повинен з’являтися в загальнодоступних API, оскільки не всі мови CLI підтримують цілі числа без знака. Але це не пояснює, чому int так поширений, навіть у внутрішніх класах. Я підозрюю, що саме з цієї причини uint економно використовується в BCL.
У C ++, якщо у вас є ціле число, для якого від'ємні значення не мають сенсу, ви вибираєте ціле число без знака.
Це чітко означає, що від’ємні числа заборонені чи очікувані, і компілятор перевірить за вас. Я також підозрюю, що стосується індексів масивів, що JIT може легко скинути перевірку нижньої межі.
Однак при змішуванні типів int та unit потрібен додатковий догляд та зліпки.
Чи слід більше використовувати uint? Чому?