2014-07-13 4 views
-1

Я думаю, что наткнулся на ошибку в VS2012.ArgumentOutOfRangeException для DateTime

Кто-нибудь видит, как следующее НЕ может быть ошибкой?

Public ReadOnly Property Email_DateTimeSent(ByVal uIndex As Integer) As DateTime 
    Get 

     If uIndex < _emails.Count Or uIndex < 0 Then 
      Stop'this line is not reached, so the index is valid 
     End If 

     Return _emails(uIndex).EMail_DateTimeSent 

    End Get 
End Property 

Ошибка «ArgumentOfRangeException: Индекс не может быть Negativ и не меньше, чем в списке.»

Однако, когда я парить над линией

  Return _emails(uIndex).EMail_DateTimeSent, 

Я понимаю, что значение действительно, а также не выходит за пределы диапазона: _emails (uIndex) .EMail_DateTimeSent = № 7/12/2014 2:19 : 23 AM #

Кто-нибудь видит, как это может привести к ошибке ??

Спасибо!

+1

Что произойдет, если 'uIndex' равен 5 и' Count' равен 6, а что, если 'uIndex' равен 7 и' Count' равен 6? –

+1

Что такое _emails? Похоже, что это должен быть список какого-то класса, у которого есть свойство .EMail_DateTimeSent – dbasnett

ответ

1

условие для проверки индекса следует искать значения, которые меньше нуля, или больше или равно графу:

If uIndex >= _emails.Count Or uIndex < 0 Then 

С текущим кодом, единственным способом достичь Return заявления состоит в том, чтобы предоставить индекс, который больше или равен счету, т.е. вне списка (или дождаться остановки отладчика в операторе Stop, а затем продолжить выполнение).

Смежные вопросы