Для представления переменной длины или счетчика лучше использовать подписанные или неподписанные целые числа?
Мне кажется, что С++ STL предпочитает unsigned (std::size_t
, как в std::vector:: size(), вместо этого С# BCL предпочитает использовать целые числа со знаком (например, ICollection.Count.
Учитывая, что длина или число - неотрицательные целые числа, моя интуиция выбирает unsigned; но я не понимаю, почему разработчики .NET выбрали знаковые целые числа.
Каков наилучший подход? Каковы плюсы и минусы каждого из них?