я получаю эти предупреждения от CodeContracts:CodeContracts: Доступ к массиву может быть выше верхней границы
Доступ к массиву может быть выше верхней границы. Вы имели в виду 0 вместо 1?
Доступ к массиву может быть выше верхней границы. Вы имели в виду 1 вместо 2?
Доступ к массиву может быть выше верхней границы. Вы имели в виду 2 вместо 3?
Доступ к массиву может быть выше верхней границы. Вы имели в виду 3 вместо 4?
На этой строке кода:
private readonly string[] _addr;
public string AddressLine1
{
get
{
return _addr[0] ?? _addr[1] ?? _addr[2] ?? _addr[3];
}
}
public string AddressLine2
{
get
{
return _addr[1] ?? _addr[2] ?? _addr[3];
}
}
public string AddressLine3
{
get
{
return _addr[2] ?? _addr[3];
}
}
Как рассказать Contracts анализатор, что эти показатели гарантированы в пределах? _addr
инициализируется в конструкторе до string[4]
.
Не могли бы вы показать нам, куда обращаются «AddressLine1» и где в конструкторе '_addr' инициализируется? –
Ваш код кажется немного странным для меня. Мне просто интересно, почему нижние индексы ноль, но более высокие могут быть не такими. – ryanyuyu
Причина в том, что у нас есть два других свойства, подобные этому. См. Мое редактирование. – Amy