Чем (uint) index >= (uint)_size лучше, чем index >= _size?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Чем (uint) index >= (uint)_size лучше, чем index >= _size?

Сообщение Anonymous »

Я заглянул под капот List и наткнулся на следующий фрагмент кода:

Код: Выделить всё

public T this[int index] {
get {
// Following trick can reduce the range check by one
if ((uint) index >= (uint)_size) {
ThrowHelper.ThrowArgumentOutOfRangeException();
}
Contract.EndContractBlock();
return _items[index];
}

set {
if ((uint) index >= (uint)_size) {
ThrowHelper.ThrowArgumentOutOfRangeException();
}
Contract.EndContractBlock();
_items[index] = value;
_version++;
}
}
В обоих операторах if index и _size (типа Int32) приводятся к UInt32, < s>Я знаю, что это не из-за переполнения, потому что сначала if есть комментарий, утверждающий обратное.
Вопрос: Что это за концепция приведения целых чисел к целым числам без знака, кроме переполнения, и в какой конкретной ситуации она может быть полезна разработчику?

Подробнее здесь: https://stackoverflow.com/questions/757 ... index-size
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»